- 浏览: 10490 次
最新评论
windows编程---在窗口上建立控件
2011年05月31日
[b]
一、概述[b]控件是子窗口,它们是系统已经定义好的窗口类,因此不需要注册、也不需要写消息处理函数。[b]在主窗口得到WM_CREATE消息时,建立子窗口即可。[b][b]
二、实例
//参数:窗口句柄,消息,消息参数,消息参数LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ //处理感兴趣的消息 switch (message) { case WM_CREATE: CreateWindow(TEXT("BUTTON"), //控件"类名称" TEXT("按钮(&A)"), WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON, 10, 10, 100, 100, hwnd, (HMENU)1000, //控件ID ((LPCREATESTRUCT) lParam)->hInstance, //实例句柄 NULL); return 0; case WM_DESTROY: //当用户关闭窗口,窗口销毁,程序需结束,发退出消息,以退出消息循环 PostQuitMessage (0) ; return 0 ; } //其他消息交给由系统提供的缺省处理函数 return ::DefWindowProc (hwnd, message, wParam, lParam) ;}
三、关于WM_CREATE消息[b]WM_CREATE 的lParam参数将会传入一个建立时信息结构指针(LPCREATESTRUCT)。[b]结构中包含了一些有用信息(窗口建立时的参数)。typedef struct tagCREATESTRUCT { LPVOID lpCreateParams; HINSTANCE hInstance; //实例句柄 HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG style; LPCTSTR lpszName; LPCTSTR lpszClass; DWORD dwExStyle; } CREATESTRUCT, *LPCREATESTRUCT;
[b]
四、控件与父窗口的协作[b]1.控件上发生动作时,将向父窗口发送通知消息WM_COMMAND。[b]WM_COMMAND:[b]HIWORD(wParam):通知码(notification code)[b]LOWORD(wParam):控件ID[b](HWND)lParam: 控件句柄除了WM_COMMAND外,每种控件还有可能有其他的通知消息(如WM_DRAWITEM)。
2.父窗口需要控制控件时,向控件发控件消息。[b]事先应记录下控件句柄,或由ID获取控件句柄
3.备注:[b]各种控件的通知消码和控制消息可由[b]MSDN-> Platform SDK-> User Interface Services->Windows User Interface->Controls[b]查得。
[b]
五、控件"类名称"[b]1.标准控件[b]BUTTON :按钮[b]COMBOBOX :复合框 [b]EDIT :编辑 [b]LISTBOX :列表 [b]RichEdit :Rich Edit version 1.0[b]RICHEDIT_CLASS :Rich Edit version 2.0[b]SCROLLBAR :滚动条[b]STATIC :静态
2.外壳附带的公用控件[b]注:建立前需要用InitCommonControlsEx进行初始化
INITCOMMONCONTROLSEX icex;// Ensure that the common control DLL is loaded. icex.dwSize = sizeof(INITCOMMONCONTROLSEX);icex.dwICC = ICC_LISTVIEW_CLASSES;InitCommonControlsEx(&icex); HWND hWndListView =CreateWindowEx(0,WC_LISTVIEW, //WC_LISTVIEW不需要加引号 TEXT(""), WS_CHILD | WS_VISIBLE|WS_BORDER | LVS_ICON | LVS_EDITLABELS | WS_EX_CLIENTEDGE , 10, 10, 100, 100, hwnd, (HMENU)1000, //控件ID ((LPCREATESTRUCT) lParam)->hInstance, //实例句柄 NULL);}
ANIMATE_CLASS[b]DATETIMEPICK_CLASS[b]HOTKEY_CLASS[b]MONTHCAL_CLASS [b]PROGRESS_CLASS [b]REBARCLASSNAME [b]STATUSCLASSNAME [b]TOOLBARCLASSNAME [b]TOOLTIPS_CLASS [b]TRACKBAR_CLASS [b]UPDOWN_CLASS [b]WC_COMBOBOXEX [b]WC_HEADER [b]WC_IPADDRESS [b]WC_LISTVIEW [b]WC_PAGESCROLLER [b]WC_TABCONTROL [b]WC_TREEVIEW3.特殊窗口[b]MDIClient :MDI客户区窗口[b]ComboLBox :The class for the list box contained in a combo box. [b]DDEMLEvent :Windows NT/2000: The class for DDEML events. [b]Message :Windows 2000: The class for a message-only window. [b]#32768 :The class for a menu. [b]#32769 :The class for the desktop window. [b]#32770 :The class for a dialog box. [b]#32771 :The class for the task switch window. [b]#32772 :Windows NT/2000: The class for icon titles.
[/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b]
发表评论
-
多线程加速图像模板匹配
2012-01-20 10:13 677多线程加速图像模板匹 ... -
VC 打开外部文件
2012-01-20 10:13 633VC 打开外部文件 2010年0 ... -
Windows消息机制VC
2012-01-20 10:13 600Windows消息机制VC 2011年0 ... -
使用 C++ 和 MFC 进行多线程编程
2012-01-20 10:13 1088使用 C++ 和 MFC 进行多线程编程 2010年11月0 ... -
windows程序设计相关思想
2012-01-20 10:13 510windows程序设计相关思想 ... -
WinCE驱动开发问题精华集锦
2012-01-19 15:14 466WinCE驱动开发问题精华 ... -
android 各系统区别(android 1.5- android 3.0)
2012-01-19 15:14 352android 各系统区别(android ... -
WinCE驱动开发问题精华集锦(一)
2012-01-19 15:14 290WinCE驱动开发问题精华 ... -
《电脑十万个为什么》 第四卷 第一章
2012-01-19 15:14 669《电脑十万个为什么》 第四卷 第一章 2010年06月07日 ... -
C#面试题集锦(你值得拥有!)
2012-01-17 05:01 561C#面试题集锦(你值得拥有!) 2011年04月22日 ... -
C#下MDI形式的图片查看器
2012-01-17 05:01 811C#下MDI形式的图片查看 ... -
Flex开源项目网址列表
2012-01-16 03:52 599Flex开源项目网址列表 2011年06月19日 1. ... -
使用ArcGIS API for Flex开发的地图应用网站
2012-01-16 03:52 705使用ArcGIS API for Flex开发的地图应用网站 ... -
flex类网站收集
2012-01-16 03:52 592flex类网站收集 2010年10月22日 1. Fle ... -
用flex开发 google map应用程式
2012-01-16 03:51 444用flex开发 google map应用程式 2009年09 ... -
N多的好资源链接
2012-01-16 03:51 911N多的好资源链接 2009年07月22日 http:// ...
相关推荐
3.3.7 在Platform SDK的基础上使用nmake 56 3.4 使用WinDbg调试 57 3.4.1 安装WinDbg 57 3.4.2 编译可调试的程序 58 3.4.3 WinDbg命令 59 3.4.4 调试过程演示 59 3.5 集成开发环境 Visual Studio 62 ...
这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin,另外压缩包中还附带了Skin编辑器(539KB) 48,...
这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin,另外压缩包中还附带了Skin编辑器(539KB) 48,...
10.2.4 在对话框模板上调整控件 185 10.2.5 修改控件的属性 185 10.2.6 设定控件跳格次序 186 10.2.7 测试对话框模板资源 187 10.3 对话框类 187 10.3.1 模式对话框 188 10.3.2 模式对话框例子 188 10.3.3 非模式...
(51KB)<END><br>40,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin(539KB)<END><br>41,activcap.ZIP 此控件是抓屏的强大工具。利用它,你可以抓下屏幕上的任何东西(293...
示例描述:本章介绍在应用程序中使用Windows基本设备的方法和技巧。 01_MouseSample 处理鼠标消息。 02_KeyTest 处理键盘消息。 03_MouseMoving 利用客户区鼠标消息拖动无边框窗体。 04_NCMsg 利用非...
---- 建立窗体frmTest.frm ,在窗体上放置按钮cmdLoadOcx—“原理图” ---- 2、声明窗体级变量与加载函数LoadControl Dim WithEvents oControl As VBControlExtender '地图仿真控件对象 Dim mblnTheory As Boolean...
2KB) 11,winhole.zip 建立一个中间有洞的窗口(2KB) 12,split.zip 分割窗口并动态调整分割区域(类似于Windows中的资源管理器)(18KB) 13,rubrect.zip 在屏幕上出现抓取窗口(8KB) 14,hidebtn...
这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin,另外压缩包中还附带了Skin编辑器(539KB) 48,...
3.3.7 在Platform SDK的基础上使用nmake 56 3.4 使用WinDbg调试 57 3.4.1 安装WinDbg 57 3.4.2 编译可调试的程序 58 3.4.3 WinDbg命令 59 3.4.4 调试过程演示 59 3.5 集成开发环境 Visual Studio 62 ...
《Delphi7编程100例》代码目录:---------------------------------------------ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态设置选项卡页面在标题栏中自定义按钮窗体开合窗帘效果Windows XP...
修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8. 改进应用接口支持库中“设置屏幕分辨率”命令。 9. 修改外部数据库在“表中记录数为零”时可能导致程序崩溃的...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
高级编程(第6版)-文字版.pdf 第I部分 语言结构和环境 第1章 visual studio 2010 3 1.1 visual studio 2010:从express到ultimate的各种版本 4 1.2 visual basic的关键字和语法 7 1.2.1 控制台应用程序 10 ...
83.问如何在Tree空件上实现点右健选中Item并下拉出菜单,如同VC5中的Workspce窗口. 84.我想在CDialog类中的树控件中响应右键弹起这一消息 85.怎样在程序中启动缺省浏览器,并进入某一网址 86.建立一束特殊效果的黑光...
例如有两个窗口共用一个窗口过程代码,你在窗口一上按下鼠标时消息就会通过窗口一的句柄被发送到窗口一而不是窗口二。 5、示例:下面有一段伪代码演示如何在窗口过程中处理消息 LONG yourWndProc(HWND hWnd,UINT ...
Delphi 7编程100例 ToolBar工具栏控件的使用 动态建立主菜单选项 窗口界面的动态分隔条 动态设置选项卡页面 在标题栏中自定义按钮 窗体开合窗帘效果 Windows XP界面效果 实现OutLook滚动工具栏效果 在下拉列表框中...
在IE工具栏上增加一个按钮图标 软件注册机制的建立 复活节彩蛋的制作 SkinEngine控件——XP换肤 ActionList——应用程序通用功能列表 OleContainer——OLE容器 将程序项设置到控制面板 艺术化排列桌面图标 Delphi中...