1 资源文件,创建对话框

详细步骤:

1、创建一个空的Win32应用程序

2、在VC6中新增资源
File -> New -> Resource Script
创建成功后会新增2个文件:xxx.rc 和 resource.h 3、打开新创建的xxx.rc文件,在资源窗口新增一个对话框,并在对话框上新增2个按钮. 4、打开resource.h文件,观察变化:
#define IDD_DIALOG_MAIN 101
#define IDC_BUTTON_OK 1000
#define IDC_BUTTON_OUT 1001 5、通过DialogBox创建对话框 INT_PTR DialogBox(
HINSTANCE hInstance, // handle to module
LPCTSTR lpTemplate, // dialog box template
HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc // dialog box procedure
);
//----参考MSDN 6、定义Dialog消息处理函数 BOOL CALLBACK DialogProc(
HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{ switch(uMsg)
{
case WM_INITDIALOG : MessageBox(NULL,TEXT("WM_INITDIALOG"),TEXT("INIT"),MB_OK); return TRUE ; case WM_COMMAND : switch (LOWORD (wParam))
{
case IDC_BUTTON_OK : MessageBox(NULL,TEXT("IDC_BUTTON_OK"),TEXT("OK"),MB_OK); return TRUE; case IDC_BUTTON_OUT: MessageBox(NULL,TEXT("IDC_BUTTON_OUT"),TEXT("OUT"),MB_OK); EndDialog(hwndDlg, 0); return TRUE;
}
break ;
} return FALSE ;
} 说明: 1、处理过的消息,返回TRUE 2、不处理的消息,返回FALSE

2 按钮、文本框的使用

1、获取文本框句柄:
HWND hEditUser = GetDlgItem(hDlg,IDC_EDIT_USER);
hDlg //对话框句柄
IDC_EDIT_USER //编号 2、获取文本框内容
TCHAR szUserBuff[0x50];
GetWindowText(hEditUser,szUserBuff,0x50);
hEditUser //文本框句柄
szUserBuff //输出缓冲区

3 为项目添加图标

1、加载图标
HICON hIcon;
hIcon = LoadIcon (hAppInstance, MAKEINTRESOURCE (IDI_ICON));
hAppInstance //应用程序句柄
IDI_ICON //图标编号
MAKEINTRESOURCE //用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串指针 2、设置图标:
case WM_INITDIALOG :
hIcon = LoadIcon (hAppInstance, MAKEINTRESOURCE (IDI_ICON));
//设置图标
SendMessage(hDlg,WM_SETICON,ICON_BIG,(DWORD)hIcon);
SendMessage(hDlg,WM_SETICON,ICON_SMALL,(DWORD)hIcon); return TRUE;

4 对话框回调函数的定位

思路:根据前面三节逆向内容的经验,很容易判断。

5 OD消息断点的使用

思路:打开OD的windows的窗口,在Button上设置消息断点LButtonUp,然后设置内存断点。能够快速过系统函数。

最新文章

  1. Appfuse:扩展自己的GenericManager
  2. Cannot add Controls from 64-bit Assemblies to the Toolbox or Use in Designers Within the Visual Studio IDE
  3. SqlServer删除表中重复记录
  4. Mssql迁移至Oracle 查询优化
  5. SDN组网相关解决方案
  6. Objective-C( 语法二)
  7. linux上安装memcached
  8. C随便练练手的题
  9. 化繁为简,无需后端。巧用Yql+rss,搭建我的个人网站
  10. 武汉科技大学ACM :1002: A+B for Input-Output Practice (II)
  11. 如何让MyEclispe中英文切换
  12. nginx默认虚拟主机
  13. 重新关联bat文件的打开方式为系统默认方式
  14. JavaEE介绍
  15. 【FF14】工匠配方爬取
  16. django 通过ajax完成邮箱用户注册、激活账号
  17. 【原创】大数据基础之Benchmark(4)TPC-DS测试结果(hive/hive on spark/spark sql/impala/presto)
  18. Ignatius and the Princess III HDU - 1028 -生成函数or完全背包计数
  19. Simple Question
  20. [转] 关于 Ceph PG

热门文章

  1. [转]hadoop运行mapreduce作业无法连接0.0.0.0/0.0.0.0:10020
  2. 8、泛型程序设计与c++标准模板库3.迭代器
  3. POJ 3691 DNA repair (DP+字符串)
  4. IOS 获取系统通讯录
  5. 滴水穿石 C#中多线程 委托的使用
  6. Dijkstra 路径规划 C#
  7. 使用Log4j2,打包后提示ERROR StatusLogger Log4j2 could not find a logging implementation.
  8. js对象转换为json字符串
  9. PostFX v2后期处理特效包:升级更惊艳的视觉效果
  10. 创建、配置Servlet