vs2010 MFC中利用CreateWindowEx手动创建工具栏后,想点击这个工具栏上的某个按钮,该如何做?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2010 MFC中利用CreateWindowEx手动创建工具栏后,想点击这个工具栏上的某个按钮,该如何做?相关的知识,希望对你有一定的参考价值。

Hwnd m_hToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | WS_VISIBLE | CCS_NODIVIDER | CCS_TOP |TBSTYLE_WRAPABLE| TBSTYLE_TOOLTIPS |CCS_NORESIZE|TBSTYLE_TRANSPARENT|TBSTYLE_FLAT,
0, 0, 0, 0, m_hWnd, (HMENU)this->m_hWnd , AfxGetApp()->m_hInstance, NULL);//////创建工具栏
这个是用该函数创建的工具栏句柄,之后的想点击工具栏上的工具按钮该怎么做了,求指点?

参考技术A 把id设置成和菜单一样的啊 如果不成的话 就不用系统的菜单栏 setmenu(null)删除 用自己的菜单 设置成 id和你 菜单一样的id 还不成的话 重载defwindowproc 拦截wm_command 消息 自己处理 参考技术B 消息映射中添加:ON_COMMOND(资源ID,消息相应函数)

MFC怎么调用API函数?

MFC怎么调用API函数?教材上说了2种方法,可很多人说可以直接使用。

这到底是怎么回事?你们真把我搞糊涂了!

调用方法:
::CreateWindow()
::SetWindowText()
1.对于直接调用Windows API函数,基本上所有的窗口API函数都是定义在windows.h文件中,MFC调用API函数时,只用在函数前面加两个冒号就可以了。
::CreateWindow()
::SetWindowText()
2.对于封装了API函数的MFC 来说,直接用MFC自己相关的函数就可以调用了。因为MFC封装了Windows API函数,加以扩展形成了自己的类。
这些都是MFC直接调用API函数的语法。
参考技术A 1.MFC封装了Windows API函数,加以扩展形成了自己的类,使其更加易用。
2.在编码过程中也可以直接调用Windows API函数。本回答被提问者采纳
参考技术B 楼上几位朋友说得很对,不过还请注意一点,就是加了域作用符 ::与不加在参数方面有区别,因为加了是全局的,所以在传参的时候往往需要第一个参数提供句柄,比如FindWindow()、SendMessage()等等,第一个参数都需要句柄的。有些则不要。 参考技术C 其实很简单。有些函数是全局函数,就要加全局作用域符号::。有些不是全局的,就可以直接用了。这要看函数的。 参考技术D 就像楼上说的,要具体看什么函数。当然,像我们这样都懒得去区分那些需要加全局作用域符号::,那些不用,所以最好的方法是在写MFC程序是调用api函数时都加上全局作用域符号::,那肯定没有问题了。

以上是关于vs2010 MFC中利用CreateWindowEx手动创建工具栏后,想点击这个工具栏上的某个按钮,该如何做?的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 如何利用 MFC单文档界面 编写 OpenGL?参考了很多vc6.0的方法,都不能在编译通过。谢了啊!

ATL(COM) 开发下 -- VS2010

MFC单文档应用程序显示图像

VS2010中如何实现自定义MFC控件

VS2010-MFC(VS2010应用程序工程中文件的组成结构)

如何修复从 VS2010 升级到 VS2013 的项目中的链接器错误,其中链接器正在寻找不存在的 MFC 库文件?