win32记事本程序(一)
我不会取标题,大体上我想用win32,模仿windows的记事本,写个记事本程序,最后让我的程序和微软的程序在外观和功能上都差不多。这样一来我可以学到一些新知识,巩固旧的知识。
一、首先做个菜单栏吧。建个menu.rc文件,参照微软的记事本,里面写上这些:
//menu.rc #define IDM_MAIN 0x2000
#define IDM_NEW 0x4101
#define IDM_OPEN 0x4102
#define IDM_SAVE 0x4103
#define IDM_SAVEAS 0x4104
#define IDM_SETTING 0x4105
#define IDM_PRINT 0x4106
#define IDM_EXIT 0x4107 #define IDM_DUDO 0x4201
#define IDM_CUTE 0x4202
#define IDM_COPY 0x4203
#define IDM_PASTE 0x4204
#define IDM_DELETE 0x4205
#define IDM_FINDE 0x4206
#define IDM_FINDENEXT 0x4207
#define IDM_REPLACE 0x4208
#define IDM_GOTO 0x4209
#define IDM_SELETEALL 0x4210
#define IDM_DATE 0x4211 #define IDM_WORDWRAP 0x4301
#define IDM_FONT 0x4302 #define IDM_STATUS 0x4401 #define IDM_HELP 0x4501
#define IDM_ABOUT 0x4502 IDM_MAIN menu discardable
BEGIN
popup "文件(&F)"
BEGIN
menuitem "新建(&N)", IDM_NEW
menuitem "打开文件(&O)", IDM_OPEN
menuitem "保存(&S)", IDM_SAVE
menuitem "另存为(&A)", IDM_SAVEAS
menuitem separator
menuitem "页面设置(&U)", IDM_SETTING
menuitem "打印(&P)", IDM_PRINT
menuitem separator
menuitem "退出(&E)", IDM_EXIT
END
popup "编辑(&E)"
BEGIN
menuitem "撤销(&U)", IDM_DUDO GRAYED
menuitem separator
menuitem "剪切(&T)", IDM_CUTE GRAYED
menuitem "复制(&C)", IDM_COPY GRAYED
menuitem "粘贴(&P)", IDM_PASTE
menuitem "删除(&L)", IDM_DELETE GRAYED
menuitem separator
menuitem "查找(&F)", IDM_FINDE GRAYED
menuitem "查找下一个(&N)",IDM_FINDENEXT GRAYED
menuitem "替换(&R)", IDM_REPLACE
menuitem "转到(&G)", IDM_GOTO GRAYED
menuitem separator
menuitem "全选(&A)", IDM_SELETEALL
menuitem "时间日期(&D)", IDM_DATE
end
popup "格式(&O)"
BEGIN
menuitem "自动换行(&T)", IDM_WORDWRAP
menuitem "字体(&T)", IDM_FONT
END
popup "查看(&V)"
BEGIN
menuitem "状态栏(&S)", IDM_STATUS GRAYED
END
popup "帮助(&H)"
BEGIN
menuitem "查看帮助(&H)", IDM_HELP
menuitem separator
menuitem "关于记事本(&A)", IDM_ABOUT
END
END
最后在主程序的创建窗口函数中,把菜单栏的句柄传进去
hwnd = CreateWindow (szAppName,
TEXT ("无标题-记事本"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
LoadMenu(hInstance,MAKEINTRESOURCE(IDM_MAIN)),
hInstance,
NULL) ;
这样运行程序,菜单栏就出来了

菜单栏的写法可以参考“windows sdk编程系列文章"。作者不知道是谁
win32记事本程序(一)的更多相关文章
- win32记事本程序(二)
遇到一个较大的难题,做记事本要不要使用edit或者是richedit控件呢.如果用控件的话感觉没什么挑战,不用控件,现有的参考资料仅有<windows程序设计>第六章的TYPER程序,这个 ...
- 【windows开发实现记事本程序——界面篇】
前言 从毕业开始学习windows UI编程,工作中总是和一些API打交道,但是从没有做过一个完整的界面程序.因此打算自己利用空余时间做一个小的项目来总结自己所学的东西.在网上看到许多人建议自己动手写 ...
- Win32对话框程序(2)
接着Win32对话框程序(1)来写 ,解决遗留的问题,即理解函数及其调用关系.文章中有些地方是自己的推断,因此肯定有叙述不准确甚至错误的地方,请指正,感谢~ ********************* ...
- java.lang.UnsatisfiedLinkError: %1 不是有效的 Win32 应用程序。
JNA 调用 dll 库时,保错: ///////////////// 通过 JNA 引入 DLL 库 //////////// /** * ID_FprCap.dll 负责指纹的采集, 指纹仪的初始 ...
- python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序
导入的时候报出了 ImportError 在windows上安装python 的模块后,导入模块时报 python ImportError: DLL load failed: %1 不是有效的 Win ...
- 【转】WIN32 控制台程序
http://blog.csdn.net/houmin0036/article/details/7702236 win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运行的应用 ...
- 简单记事本程序java源码项目
代码如下 import java.awt.*; import java.io.*; import java.awt.datatransfer.*; import java.awt.event.*; p ...
- qt5.5实现 记事本程序
最近由于要做Qt相关的毕业设计课题,以前对Qt完全不了解,对于客户端图形界面程序,也只对Windows下的MFC熟悉, 所以,由于Qt的跨平台特性和相对比较纯的C++的特点,就准备学习一下吧.这两天逛 ...
- 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”
原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...
随机推荐
- Swiper说明&&API手册 【中文手册Swiper】
原文地址:http://www.cnblogs.com/scavengers/p/3760449.html 示例: <link rel="stylesheet" href= ...
- 安装Windows 10后PDF补丁丁等程序界面变得模糊的解决办法
对于使用高分辨率屏幕且屏幕缩放比例在 100%以上的用户,升级到 Windows 10 后将发现许多程序的界面,例如QQ.电脑管家.Windows本身的服务管理程序等等,都变得非常模糊,<PDF ...
- js判断数组
1.constructor 在W3C定义中的定义:constructor 属性返回对创建此对象的数组函数的引用 就是返回对象相对应的构造函数.从定义上来说跟instanceof不太一致,但效果都是一样 ...
- Monkey for iOS(CrashMonkey4IOS)
CrashMonkey4IOS介绍 支持真机测试.模拟器测试 支持收集系统日志(Systemlog).崩溃日志(Crashlog).instrument行为日志 支持测试报告截图,绘制行为轨迹 支持测 ...
- iOS UISearchBar 设置取消按钮,回收键盘,并修改cancel为“取消”
继承协议: UISearchBarDelegate 在代理方法中设置: #pragma mark --- 搜索框开始编辑 --- - (void)searchBarTextDidBeginEditin ...
- JQuery 判断不同浏览器
if($.browser.msie) { //IE浏览器alert("this is msie"); } else if($.browser.safari) ...
- Linux 文件的基本操作
1>.新建空白文件: touch命令-->$ touch test 2>.新建目录: mkdir命令-->$mkdir mydir 使用 -p参数:同时创建父目录-->$ ...
- JPA原理理解
从前面一篇<JPA使用入门>了解了JPA的简单使用.要想继续深入的使用JPA,可能了解一点原理对于学习JPA会比较有益处. 这里从JPA的功能来简单阐述JPA的原理. 从<初步了解J ...
- ios开发之网络php
接着前面的学习,几天上午学习了数据库网络值php用户的注册与登录,感觉代码与ios上的oc太相似了,因此学习下来没什么障碍了,下面是代码: 首先是javascript.html文件中: <!DO ...
- html页面3秒后自动跳转的方法有哪些
在进行web前端开发实战练习时,我们常常遇到一种问题就是,web前端开发应该如何实现页面N秒之后自动跳转呢?通过查找相关html教程,总结了3个方法: 方法1: 最简单的一种:直接在前面<hea ...