具有用于COpenGLControl类与CMFCToolBar类的LoadToolBarEx功能麻烦

2019-10-30 03:47发布

我创建了一个新的空对话框来测试代码上CMFCToolBar的一些注意事项-对接大按钮和使用MDIClientArea的 ,但我看到这条线会产生false

bool b = m_FirstToolbar.LoadToolBarEx(IDR_MAINFRAME, tbi, TRUE);  

这是我的项目的资源:

有什么问题,我应该如何添加到资源?
请帮我。 这是第三个问题,我今天问了有关在MFC基于对话框的应用程序的工具栏。
我在一个基于对话框的MFC应用程序的工具栏不显示
写代码到工具栏添加到基于对话框的MFC对话框不运行后
我已阅读本网站上的许多问题,也研究了很多的网页时。 最后我来到了这一点使用CMFCToolBar类代替CToolbar支持对工具栏32位的24x24图标,但没有一个页面的帮助真的,我还没有看到仍然在我的对话框顶部的工具栏。
能否请你帮我介绍一个链接,视频教程等,并已教导将支持32位图像的图标在Visual Studio 2010中的基于对话框的MFC应用程序的工具栏**
**我宁愿已经从无到有,也是很好的MFC的初学者,以及一个以aguru教程

thanks.I'd很高兴到这里你的答案。

基于@Edward克莱门特有用的导向管我的问题的编辑区段
这是我的项目的RESOURCE.H文件

//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by InitialJobProject2.rc
//
#define IDM_ABOUTBOX                    0x0010
#define IDD_ABOUTBOX                    100
#define IDS_ABOUTBOX                    101
#define IDD_INITIALJOBPROJECT2_DIALOG   102
#define IDR_MAINFRAME                   128
#define IDB_BITMAP1                     130
#define IDR_TOOLBAR1                    132
#define IDI_ICON1                       135
#define IDC_NewBtnTbr                   135
#define IDC_ZoomInBtnTbr                136
#define IDC_ZoomOutBtnTbr               137
#define IDI_ICON2                       138
#define IDC_PanBtnTbr                   138
#define IDC_TXTDataFile                 1001
#define IDC_EDTDataPath                 1002
#define IDC_BTNBrowse                   1003
#define IDC_RICHEDTHeader               1005
#define IDC_OPENGL                      1009

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        139
#define _APS_NEXT_COMMAND_VALUE         32776
#define _APS_NEXT_CONTROL_VALUE         1010
#define _APS_NEXT_SYMED_VALUE           104
#endif
#endif  

我不知道这个数字是如何设置? 我应该怎么计算的数量分配给新的ID?
什么之间的区别_APS_NEXT_RESOURCE_VALUE_APS_NEXT_COMMAND_VALUE_APS_NEXT_CONTROL_VALUE_APS_NEXT_SYMED_VALUE
如果我指定的号码1010的新ID那我怎么在前面写_APS_NEXT_CONTROL_VALUE
还有一个问题是涨起来是这样的一种:

我已经使用了MFC / C ++帮助器类为窗口从CodeProject调整大小以锚定对话的控制它。 此类使用的控制ID。 我添加了一个从codeguru COpenGLControl在一个MFC控件设置的OpenGL它不需要ID在它的构造函数,但因为它是从CWnd类派生,它有一个功能setHelpID我可以添加这样的IDM,IDB,IDD,IDR,IDS,IDI or IDC (我不知道是哪一个,请帮助我如何在它们之间进行选择and then assign this ID through function setHelpID to the instance of the class COpenglControl ? and then use this ID to hook the openGL window to the main window through class CWndResizer`?

问题解决了
我建议对OpenGL窗口设置ID的方式做,除了你应该使用SetDlgCtrlID成员函数,而不是SetHelpID工作

Answer 1:

我不熟悉的工具条加载到对话框,但你需要创建一个工具栏资源与ID(我不会用IDR_MAINFRAME自己,因为它是混乱的,您可能需要多个工具栏),并使用该ID LoadToolBarEx ; 工具栏将包含与自己的图像和ID按钮。 您将需要一个ON_COMMANDON_UPDATE_COMMAND_UI在消息映射启用/禁用按钮,并向按钮点击回应。

这MSDN论坛的帖子中提到,需要你的对话框将源自CDialogEx ,而不是CDialog

有对MFC Featurepack控件(如CMFCToolbar)很少清晰的文档是,这CodeProject上的文章可以帮助(尽管它是关于移植遗留应用程序,它仍然有相当多有用的做的和不要的)。

在部份一些更多的信息SO文章 ,这是有关动态创建工具栏(无需工具栏资源)。



文章来源: having trouble with LoadToolBarEx function of the CMFCToolBar class and set ID for the COpenGLControl class