MFC中想要按一下按钮使一个静态控件变量加上1。我用以下代码编译能通过,但是不能运行,会出错。高手帮下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中想要按一下按钮使一个静态控件变量加上1。我用以下代码编译能通过,但是不能运行,会出错。高手帮下相关的知识,希望对你有一定的参考价值。

static int num=1;
static CString str;
void CFirstDlg::OnOK()

num++;
str.Format("%num",num);
GetDlgItem(IDC_STATIC_1)->SetWindowText(str);


控件名是IDC_STATIC_1
按钮是CFirstDlg对话框里的OK按钮

哪位大哥帮帮忙啊~~我是刚开始自学VC的~~完全菜鸟一个~~谢啦

在 DoDataExchange 里有
CDialog::DoDataExchange(pDX);
//AFX_DATA_MAP(CG_SlidesDlg)
DDX_Control(pDX, IDC_STATIC1, m_static);

在OnOK() 里
....
m_static.SetWindowText(str);
参考技术A CWnd* wnd = GetDlgItem(IDC_STATIC_1);
if ( wnd )
wnd->SetWindowText(str);

MFC中如何让静态控件响应鼠标移动的消息?

我想在静态文本控件中显示3D图形(用OGRE渲染),于是我自定义了继承CWnd的CMyModule类,并且在CMyModule中已经写了响应WM_MOUSEMOVE消息的处理函数。我在对话框模板中拖入了静态文本控件。然后把这个控件关联我的自定义类,现在已经能在对话框的静态控件中显示3D图像了,现在的问题是当鼠标移动到静态控件时还是不能响应我的消息函数,不能移动图形。本人菜鸟,请高手指点。
我曾经在SDI工程下的View中能显示3D图形并且也能够响应鼠标的移动消息。

你是如何关联CMyModule类的,应该在对话框中,根据控件ID,删除已经创建的静态文件控件,然后用这个ID创建自己的子窗口。
还有,在鼠标的响应函数中,放一些TRACE宏,输出点内容,看看是否的确没有进入鼠标消息响应。
参考技术A 你在你的OnLButtonDown方法里设置个断点,调试下看看鼠标消息是否能得到响应 参考技术B WM_MOUSEMOVE

一般情况下,鼠标移动是不能拖动图形的,一定要和leftbuttondown或 rightbuttondown联合使用。

某个键按下时,同时移动鼠标,同时捕捉这两个消息,然后处理图形移动。追问

在CMyModule中我也已经写了
void CMyModule::OnLButtonDown(UINT nFlags, CPoint point)

// TODO: 在此添加消息处理程序代码和/或调用默认值
m_mouseLast = point;
CWnd::OnLButtonDown(nFlags, point);

追答

在自己的类里面,得到消息后要自己处理,就是重新画图。不能用缺省的处理。

本回答被提问者采纳

以上是关于MFC中想要按一下按钮使一个静态控件变量加上1。我用以下代码编译能通过,但是不能运行,会出错。高手帮下的主要内容,如果未能解决你的问题,请参考以下文章

mfc 如何使编辑框和变量关联

MFC中给控件添加变量,DoDataExchange中

MFC SDI中 如何为动态创建的按钮添加消息处理函数

MFC:如何绘制静态文本

mfc里给picture控件加载一张位图,然后在位图上画一条线,该怎么做

MFC控件编程之 按钮编辑框.静态文本的使用