Windows 编程[20] - 改变菜单项并换行
为什么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] - 改变菜单项并换行相关推荐
- Windows 编程[19] - 改变菜单项的状态: GetMenuState、EnableMenuItem
为什么80%的码农都做不了架构师?>>> 本例效果图: 本例使用的资源文件(TestRes.rc): MyMenu1 MENUEX BEGINMENUITEM "菜单 ...
- ModifyMenu 改变菜单项属性的API函数
ModifyMenu 函数功能:该参数修改已存在的菜单项,并指定菜单项的内容.外观和性能. 函数原型:BOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uF ...
- java工具栏的工具提示,动态菜单项、状态条提示、工具条提示问题
问题的提出: 一个应用程序想要动态改变菜单项.使用CCmdUI::SetText("Menu Text")可以改变菜单文本,但是如何动态改变工具条和状态条的文本呢? 有几种策略,避 ...
- 【windows编程之对话框】对话框原理,对话框的创建
文章目录 引言 一.对话框原理 1.对话框的分类 2.对话框的基本使用 2.自定义对话框窗口消息处理函数 二.模式对话框 - 1.创建对话框 - 2.对话框的关闭 - 3.对话框消息 三.模式对话框创 ...
- 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 ...
- Windows 7 下右键发送到菜单项没了
为什么80%的码农都做不了架构师?>>> 问题描述: 突然有一天,Windows 7 下右键发送到菜单项没了,如图所示: 问题原因 黑人问号脸? 转载于:https://my. ...
- Tkinter编程应知应会(20)-主菜单
菜单是GUI程序的常用控件之一,本文说明Tkinter中如何使用菜单.还是先看示例视频: 视频链接 视频中的小程序是在之前的Text控件示例程序的基础上修改而成的,功能基本一致,只是增加了菜单操作的功 ...
- 后台管理页面通过点击左侧导航栏的菜单项实现右边内容的改变
目录 前端页面部分 js代码部分 左侧导航栏组菜单项的打开与关闭 url地址跳转 地址栏url地址处理 ajax实现右边页面内容变换 内容面板上Bootstrap 面包屑导航 前端页面部分 <a ...
- Windows编程 第四回 Windows程序的生与死(下)
致歉 很抱歉,读者看到的这篇文章将是我写的最没什么条理的一篇了,由于这一块儿内容是所有Windows程序的核心与基础,所以我分了三回来写.我想讲 得既易懂有又丰富,无奈本人才疏学浅,每每一提笔就要查很 ...
最新文章
- 不用卷积,也能生成清晰图像,华人博士生首次尝试用两个Transformer构建一个GAN
- #iOS问题记录#WKWebView 闪退异常
- 阿里云全球布局逾200个数据中心,成立海外孵化中心深耕本地市场
- vue2路由移除#号(Apache)
- 009-Joran配置框架
- 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改的记录数...
- 后勤管理系统_充满“智慧”的后勤管理系统是什么样的?
- Java设计模式笔记(3)抽象工厂模式
- JavaScript onerror 事件( window.onerror = )
- FreeSql (二十九)Lambda 表达式
- java中标准封装结构_java中的构造,封装
- 灰色关联度分析_数学建模|关联分析之术|灰度预测模型预备知识
- android源码使用方法,android源码中使用到的设计模式(创建型)
- webmin账户重置密码
- 单例模式 - 双锁机制
- 列表与元组——Python基础语法
- PDF文件打开密码解密
- 阿里云大学:云端搭建Linux学习环境
- Android 加载超大图片+源码
- Github如何绑定域名