背景:使用windows API 编写窗口应用程序,工具栏的应用。TCreateToolBar函数是一个自定义创建工具栏的函数。
问题:1.工具栏和 TreeView 树视图控件,列表框控件是一类的吗?
2.TCreateToolBar 函数是放在 WM_CREATE 消息响应函数里吗?
3.如果响应工具栏按钮要定义 WM_NOTIFY 消息处理函数吗?
(最好说明理由!!!!!)
我把 TCreateToolBar 函数是放在 WM_CREATE 消息响应函数里面,工具栏显示异常,
好像在窗口有一点工具栏的迹象,没有显示定义在工具栏上面的位图。
帮忙看看下面的代码,看看有什么异常!!!!!!
void TCreateToolBar(HWND hParent,HINSTANCE hInstance)//工具栏的创建
{
INITCOMMONCONTROLSEX Icce; //常用控件初始化结构体 Icce.dwSize = sizeof(INITCOMMONCONTROLSEX);
Icce.dwICC=ICC_COOL_CLASSES|ICC_BAR_CLASSES; //注意这两个参数决定了是否注册Toolbar InitCommonControlsEx(&Icce);
HWND htb = CreateWindowEx( WS_EX_TOOLWINDOW/*扩展工具条风格*/,
TOOLBARCLASSNAME/*Toolbar类名 */, NULL,
WS_CHILD|WS_VISIBLE|TBSTYLE_FLAT|SS_BITMAP/*窗口风格*/ ,
0,0,30,30, hParent/*父窗口名*/,
NULL, hInstance, NULL); HIMAGELIST hIList;// 建立一个Imagelist 控件,
hIList = ImageList_Create(20,20,ILC_COLOR4,1,4); //MYICON_CX,MYICON_CY是每个按钮的大小 ImageList_Add( hIList, LoadBitmap( hInstance,MAKEINTRESOURCE(ID_PENCIL) ), NULL );
//加入事先作好的工具条位图ID_PENCIL SendMessage(htb, TB_SETIMAGELIST, 0, (LPARAM)hIList); //通过消息把位图加入到Toolbar中 TBBUTTON TButton; //按钮的数据结构
//TButton.bReserved = ;
TButton.dwData = 0;
TButton.fsState = TBSTATE_ENABLED;
TButton.fsStyle = TBSTYLE_SEP;
TButton.iBitmap = 0;
TButton.idCommand = 0;
TButton.iString = 0; SendMessage(htb, TB_SETIMAGELIST, sizeof(TBBUTTON), 100); //设置按钮结构的大小
SendMessage(htb, TB_ADDBUTTONS, (UINT)5, (LPARAM)&TButton); //添加按钮到Toolbar中 ShowWindow(htb, SW_SHOWNORMAL); //显示工具栏
}
解决方案 »
- 请教多网卡socket编程如何指定网卡
- 请问怎么写Cookie
- CDC 资源释放的问题
- 问一下findwindowEx()的问题
- vc下使用ado在win98下怎么不能运行?请高手指点!来着有分
- 在一个非UNICODE的VC工程里,如何把一个字符串char*变量,转化成LPCWSTR类型?
- 请问在VC中能否编写中断服务程序? 如何编写?
- VC++MFC串口通信程序,怎样直接给发送缓存区赋值?比如输入命令按下确认键上位机处理任务,同时要把输入命令发送给下位机如何实现
- CSDN有没有打印高手??
- 100分大赠送!难题!如何获得当前网页中ActiveX控件的句柄?
- 真心求助各位高手,十万火急!!!!!
- MFC 图片的显示
好像有了,点击有反应了,但位图没有显示出来啊,
这个不知道有问题没有?
ImageList_Add( hIList, LoadBitmap( hInstance,MAKEINTRESOURCE(ID_PENCIL) ), NULL );
//加入事先作好的工具条位图ID_PENCIL 要不哪位好心的仁兄留个邮箱,我把代码程序发过来,帮我看看,代码不多,一个win32程序,创建工具栏,!!!!