为什么80%的码农都做不了架构师?>>>   

本例效果图:



本例使用的资源文件(TestRes.rc):


MyMenu1 MENUEX
BEGINMENUITEM "File"  ,101MENUITEM "Add"   ,102
END

本例代码文件:


program Project1;{$R 'TestRes.res' 'TestRes.rc'}usesWindows, Messages;vari: Word = 1;{收到 WM_COMMAND 消息时需要做的工作}
procedure OnCommand(h: HWND; wParam: Integer);
vars: string;
begincase LoWord(wParam) of102: begin  {102 是在资源文件中指定的菜单标识}Str(i, s);s := 'NewMenu_' + s;AppendMenu(GetMenu(h), MFT_STRING or MFT_MENUBREAK, i, PChar(s));DrawMenuBar(h);Inc(i);end;else beginStr(wParam, s);MessageBox(0, PChar(s), '', 0);end;end;
end;function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;
beginResult := 0;case msg ofWM_COMMAND : OnCommand(wnd, wParam); {收到 WM_COMMAND 消息后调用 OnCommand 过程}WM_DESTROY : PostQuitMessage(0);elseResult := DefWindowProc(wnd, msg, wParam, lParam);end;
end;function RegMyWndClass: Boolean;
varcls: TWndClass;
begincls.style         := CS_HREDRAW or CS_VREDRAW;cls.lpfnWndProc   := @WndProc;cls.cbClsExtra    := 0;cls.cbWndExtra    := 0;cls.hInstance     := HInstance;cls.hIcon         := 0;cls.hCursor       := LoadCursor(0, IDC_ARROW);cls.hbrBackground := HBRUSH(COLOR_WINDOW + 1);cls.lpszMenuName  := 'MyMenu1';cls.lpszClassName := 'MyWnd';Result := RegisterClass(cls) <> 0;
end;{程序入口}
consttit = 'New Form';ws = WS_OVERLAPPEDWINDOW;x = 100; y = 100; w = 300; h = 180;
varhWnd: THandle;Msg : TMsg;
beginRegMyWndClass;hWnd := CreateWindow('MyWnd', tit, ws, x, y, w, h, 0, 0, HInstance, nil);ShowWindow(hWnd, SW_SHOWNORMAL);UpdateWindow(hWnd);while(GetMessage(Msg, 0, 0, 0)) dobeginTranslateMessage(Msg);DispatchMessage(Msg);end;
end.

转载于:https://my.oschina.net/hermer/blog/319757

Windows 编程[20] - 改变菜单项并换行相关推荐

  1. Windows 编程[19] - 改变菜单项的状态: GetMenuState、EnableMenuItem

    为什么80%的码农都做不了架构师?>>>    本例效果图: 本例使用的资源文件(TestRes.rc): MyMenu1 MENUEX BEGINMENUITEM "菜单 ...

  2. ModifyMenu 改变菜单项属性的API函数

    ModifyMenu 函数功能:该参数修改已存在的菜单项,并指定菜单项的内容.外观和性能. 函数原型:BOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uF ...

  3. java工具栏的工具提示,动态菜单项、状态条提示、工具条提示问题

    问题的提出: 一个应用程序想要动态改变菜单项.使用CCmdUI::SetText("Menu Text")可以改变菜单文本,但是如何动态改变工具条和状态条的文本呢? 有几种策略,避 ...

  4. 【windows编程之对话框】对话框原理,对话框的创建

    文章目录 引言 一.对话框原理 1.对话框的分类 2.对话框的基本使用 2.自定义对话框窗口消息处理函数 二.模式对话框 - 1.创建对话框 - 2.对话框的关闭 - 3.对话框消息 三.模式对话框创 ...

  5. python递归求斐波那契数列前20项_用递归算法实现斐波那契数列1,1,2,3,5,8,13……的前20项,每输出5项一换行,用C++...

    关于 用递归算法实现斐波那契数列1,1,2,3,5,8,13--的前20项,每输出5项一换行,用C++的搜索结果 回答 请参考这篇文章,https://help.aliyun.com/document ...

  6. Windows 7 下右键发送到菜单项没了

    为什么80%的码农都做不了架构师?>>>    问题描述: 突然有一天,Windows 7 下右键发送到菜单项没了,如图所示: 问题原因 黑人问号脸? 转载于:https://my. ...

  7. Tkinter编程应知应会(20)-主菜单

    菜单是GUI程序的常用控件之一,本文说明Tkinter中如何使用菜单.还是先看示例视频: 视频链接 视频中的小程序是在之前的Text控件示例程序的基础上修改而成的,功能基本一致,只是增加了菜单操作的功 ...

  8. 后台管理页面通过点击左侧导航栏的菜单项实现右边内容的改变

    目录 前端页面部分 js代码部分 左侧导航栏组菜单项的打开与关闭 url地址跳转 地址栏url地址处理 ajax实现右边页面内容变换 内容面板上Bootstrap 面包屑导航 前端页面部分 <a ...

  9. Windows编程 第四回 Windows程序的生与死(下)

    致歉 很抱歉,读者看到的这篇文章将是我写的最没什么条理的一篇了,由于这一块儿内容是所有Windows程序的核心与基础,所以我分了三回来写.我想讲 得既易懂有又丰富,无奈本人才疏学浅,每每一提笔就要查很 ...

最新文章

  1. 不用卷积,也能生成清晰图像,华人博士生首次尝试用两个Transformer构建一个GAN
  2. #iOS问题记录#WKWebView 闪退异常
  3. 阿里云全球布局逾200个数据中心,成立海外孵化中心深耕本地市场
  4. vue2路由移除#号(Apache)
  5. 009-Joran配置框架
  6. 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改的记录数...
  7. 后勤管理系统_充满“智慧”的后勤管理系统是什么样的?
  8. Java设计模式笔记(3)抽象工厂模式
  9. JavaScript onerror 事件( window.onerror = )
  10. FreeSql (二十九)Lambda 表达式
  11. java中标准封装结构_java中的构造,封装
  12. 灰色关联度分析_数学建模|关联分析之术|灰度预测模型预备知识
  13. android源码使用方法,android源码中使用到的设计模式(创建型)
  14. webmin账户重置密码
  15. 单例模式 - 双锁机制
  16. 列表与元组——Python基础语法
  17. PDF文件打开密码解密
  18. 阿里云大学:云端搭建Linux学习环境
  19. Android 加载超大图片+源码
  20. Github如何绑定域名

热门文章

  1. MFC工作笔记0005---::在vc++中是什么意思
  2. java在线支付---03_分析易宝支付网关的请求协议
  3. Kafka内核理解:消息的收集/消费机制
  4. javascript中五种常见的DOM方法
  5. VC创建可隐藏文件夹的方法
  6. 嵌入式电路设计(第一个商业pcb电路图绘制)
  7. 随想录(学校研究和公司研发)
  8. linux驱动编写(usb host驱动入门)
  9. 随想录(平台软件和项目代码)
  10. java购买同一件商品时加锁_java中CAS的ABA问题思考和整理(不看后悔系列)