您的位置:首页 > 编程语言

hellowin -windows菜单编程

2014-03-09 16:28 323 查看
在工程文件下右键-添加-资源,

选择menu 新建即可进入可视化的菜单资源编辑,

我们可以看到在头文件下多出一个resource.h的头文件,

资源文件下看到多出一个扩扩展名为.rc的资源文件,可将它拖到源文件下。

******************************************************************************************

*发现resource.h头文件打开的情况下进入重新编辑打开我们的菜单"***.rc"

会出现一个"在另一个编辑器中打开"的错误,先将头文件resource.h关掉即可。

*****************************************************************************************

加载菜单:(转自:*点击打开链接*)

第一种加载方式(类设计时):

WNDCLASS wndclass;

....
wndclass.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
//这里省略了窗体类创建时需要填写的其他信息.


第二种加载方式(窗体创建时):

HMENU hmenu;
WNDCLASS wndclass;

....
wndclass.lpszMenuName=NULL;
//这里省略了一些窗体类的必要信息填写,和注册窗口类等操作

//加载菜单到菜单句柄中
hmenu=LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1));
//在创建窗体时候载入菜单
hwnd=CreateWindow("text","hellow world",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,hmenu,hInstance,NULL);


第三种加载方式(窗体创建后):

HMENU hmenu;
WNDCLASS wndclass;

....
wndclass.lpszMenuName=NULL;
//这里省略了一些窗体类的必要信息填写,和注册窗口类等操作

//创建窗体
hwnd=CreateWindow("text","hellow world",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

//加载菜单到菜单句柄中
hmenu=LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1));
//动态的加载菜单到窗体中去
SetMenu(hwnd,hmenu);

************************************************************************************************

如何使用我们创建的菜单

在LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 函数中
switch(message)
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case ID_ADDNEW: //ID_ADDNEW 为我们创建的菜单下各menu的ID下同
//MessageBox(NULL,L"addNew",L"add", MB_OK);
break;
case ID_OPEN:
//MessageBox(NULL, L"Hello_string", L"szCaptionMain", MB_OK);
//CFileDialog();
//CFileDialog dlg(bOpen, "*.csv", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "CSV (逗号分隔符)(*.csv)|*.csv|All files (*.*)|*.*||");
break;

case ID_EXIT:
DestroyWindow(hwnd);//退出窗口
break;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: