鱼C论坛

 找回密码
 立即注册
查看: 2673|回复: 11

[技术交流] SDK菜单创建 CreateMenu的使用 ——如果回复的多的话,小仙努力写个记事本

[复制链接]
发表于 2014-11-22 17:41:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 拈花小仙 于 2014-11-22 20:03 编辑
  1. #include <Windows.h>
  2. HINSTANCE g_hInstance;
  3. HANDLE g_hStdOut;

  4. void OnCreate(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
  5. {
  6.     HMENU hMainMenu = CreateMenu();

  7.     HMENU hFileMenu = CreatePopupMenu();
  8.     AppendMenu(hFileMenu,MF_STRING|MF_CHECKED,1001,TEXT("新建(&N)"));
  9.     AppendMenu(hFileMenu,MF_STRING,1002,TEXT("保存(&S)"));
  10.     AppendMenu(hFileMenu,MF_SEPARATOR,0,NULL);
  11.     AppendMenu(hFileMenu,MF_STRING,1003,TEXT("退出(&X)"));
  12.     AppendMenu(hMainMenu,MF_STRING|MF_POPUP,(UINT)hFileMenu,TEXT("文件(&F)"));

  13.     HMENU hEditMenu = CreatePopupMenu();
  14.     AppendMenu(hEditMenu,MF_STRING,1004,TEXT("编辑(&T)"));
  15.     AppendMenu(hEditMenu,MF_STRING,1005,TEXT("复制(&C)"));
  16.     AppendMenu(hEditMenu,MF_STRING,1006,TEXT("粘贴(&P)"));
  17.     AppendMenu(hMainMenu,MF_STRING|MF_POPUP,(UINT)hEditMenu,TEXT("编辑(&E)"));

  18.     HMENU hHelpMenu = CreatePopupMenu();
  19.     AppendMenu(hHelpMenu,MF_STRING,1007,TEXT("注册(&H)"));
  20.     AppendMenu(hHelpMenu,MF_STRING,1008,TEXT("关于(&A)"));
  21.     AppendMenu(hMainMenu,MF_STRING|MF_POPUP,(UINT)hHelpMenu,TEXT("帮助(&H)"));

  22.     SetMenu(hWnd,hMainMenu);
  23. }

  24. void OnCommand(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
  25. {
  26.     switch(wParam)
  27.     {
  28.     case 1003:
  29.         {
  30.             PostMessage(hWnd,WM_QUIT,0,0);
  31.             break;
  32.         }
  33.     }
  34. }

  35. LRESULT CALLBACK WndProc(HWND hWnd,
  36.                          UINT uMsg,
  37.                          WPARAM wParam,
  38.                          LPARAM lParam)
  39. {
  40.     switch(uMsg)
  41.     {
  42.     case WM_CREATE:
  43.         OnCreate(hWnd,uMsg,wParam,lParam);
  44.         break;
  45.     case WM_COMMAND:
  46.         OnCommand(hWnd,uMsg,wParam,lParam);
  47.         break;
  48.     case WM_DESTROY:
  49.         PostQuitMessage(0);
  50.         return 0;
  51.     }
  52.     return DefWindowProc(hWnd,uMsg,wParam,lParam);
  53. }

  54. void RegisterWnd(LPCTSTR lpClassName)
  55. {
  56.     WNDCLASSEX wce;
  57.     wce.style = CS_HREDRAW|CS_VREDRAW;
  58.     wce.lpfnWndProc = WndProc;
  59.     wce.cbSize = sizeof(WNDCLASSEX);
  60.     wce.cbClsExtra = 0;
  61.     wce.cbWndExtra = 0;
  62.     wce.hInstance = g_hInstance;
  63.     wce.hIcon  = 0;
  64.     wce.hCursor = 0;
  65.     wce.hIconSm = 0;
  66.     wce.hbrBackground = HBRUSH(COLOR_BTNFACE);
  67.     wce.lpszClassName = lpClassName;
  68.     wce.lpszMenuName = 0;
  69.     if(!RegisterClassEx(&wce))
  70.     {
  71.         MessageBox(NULL,TEXT("注册失败"),TEXT("提示"),MB_OK);
  72.     }

  73. }

  74. HWND CreateWnd(LPCTSTR lpClassName)
  75. {
  76.     HWND hWnd = CreateWindowEx(0,lpClassName,L"鱼C记事本",
  77.         WS_OVERLAPPEDWINDOW,500,200,
  78.         600,400,NULL,NULL,g_hInstance,NULL);
  79.     return hWnd;
  80. }

  81. void DisplayWnd(HWND hWnd)
  82. {
  83.     ShowWindow(hWnd,SW_SHOW);
  84.     UpdateWindow(hWnd);
  85. }

  86. void Message()
  87. {
  88.     MSG msg;
  89.     while(GetMessage(&msg,NULL,0,0))
  90.     {
  91.         TranslateMessage(&msg);
  92.         DispatchMessage(&msg);
  93.     }
  94. }

  95. int WINAPI WinMain(HINSTANCE hInstance,
  96.                    HINSTANCE hPrevInstance,
  97.                    LPSTR     lpCmdLine,
  98.                    int       nCmdShow)
  99. {
  100.     g_hInstance = hInstance;
  101.     RegisterWnd(L"拈花小仙");
  102.     HWND hWnd = CreateWnd(L"拈花小仙");
  103.     DisplayWnd(hWnd);
  104.     Message();
  105.     return 0;
  106. }
复制代码
记事本.jpg

评分

参与人数 2荣誉 +2 鱼币 +8 贡献 +3 收起 理由
ebloke + 6 + 1 感谢楼主无私奉献!
小甲鱼的二师兄 + 2 + 2 + 2 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-22 17:42:05 | 显示全部楼层
@Angel丶L 一个简单的界面哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-22 17:48:47 | 显示全部楼层
来看看学习下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-22 18:56:01 | 显示全部楼层
要是有图就更好了~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-22 20:04:34 | 显示全部楼层

遵二师伯命,已上传图片,只因太过简单才没上图的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-22 20:33:19 | 显示全部楼层
SDK写这个难度可不是一般的大,麻烦
  ,mfc还好   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-22 20:48:49 | 显示全部楼层
qq351317878 发表于 2014-11-22 20:33
SDK写这个难度可不是一般的大,麻烦
  ,mfc还好

感觉很容易呀,就是浪时间,MFC不用写,直接鼠标就行哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-23 08:02:49 | 显示全部楼层
拈花小仙 发表于 2014-11-22 20:48
感觉很容易呀,就是浪时间,MFC不用写,直接鼠标就行哈~

得记住好多东西 ,太累
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-24 01:25:59 | 显示全部楼层
我去,牛逼的嘞!源代码求一份!:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-8 15:07:03 | 显示全部楼层
感谢楼主的分享!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-11 17:52:42 | 显示全部楼层
:sweat::sweat::sweat:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-11 12:11:17 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 20:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表