`
hme53hme
  • 浏览: 10490 次
社区版块
存档分类
最新评论

windows编程---在窗口上建立控件

 
阅读更多

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]
分享到:
评论

相关推荐

    精通Windows.API-函数、接口、编程实例.pdf

    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 ...

    VB编程资源大全(控件 其它3)

    这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin,另外压缩包中还附带了Skin编辑器(539KB) 48,...

    VB编程资源大全(控件 其它1)

    这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin,另外压缩包中还附带了Skin编辑器(539KB) 48,...

    Windows编程技术

    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 非模式...

    Visual C++ 编程资源大全(控件 其它)

    (51KB)<END><br>40,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin(539KB)<END><br>41,activcap.ZIP 此控件是抓屏的强大工具。利用它,你可以抓下屏幕上的任何东西(293...

    vc实例精通源码,windows基本控件的使用Demo

    示例描述:本章介绍在应用程序中使用Windows基本设备的方法和技巧。 01_MouseSample 处理鼠标消息。 02_KeyTest 处理键盘消息。 03_MouseMoving 利用客户区鼠标消息拖动无边框窗体。 04_NCMsg 利用非...

    VB6.0动态加载ActiveX控件漫谈

    ---- 建立窗体frmTest.frm ,在窗体上放置按钮cmdLoadOcx—“原理图” ---- 2、声明窗体级变量与加载函数LoadControl Dim WithEvents oControl As VBControlExtender '地图仿真控件对象 Dim mblnTheory As Boolean...

    VB编程资源大全(源码 控件)

    2KB) 11,winhole.zip 建立一个中间有洞的窗口(2KB) 12,split.zip 分割窗口并动态调整分割区域(类似于Windows中的资源管理器)(18KB) 13,rubrect.zip 在屏幕上出现抓取窗口(8KB) 14,hidebtn...

    VB编程资源大全(控件 其它2)

    这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件可以建立超Cool的窗口,利用该控件可以为窗口添加不同的Skin,另外压缩包中还附带了Skin编辑器(539KB) 48,...

    精通WindowsAPI 函数 接口 编程实例

    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例》代码

    《Delphi7编程100例》代码目录:---------------------------------------------ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态设置选项卡页面在标题栏中自定义按钮窗体开合窗帘效果Windows XP...

    易语言程序免安装版下载

    修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8. 改进应用接口支持库中“设置屏幕分辨率”命令。 9. 修改外部数据库在“表中记录数为零”时可能导致程序崩溃的...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    高级编程(第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 ...

    VC编程技巧精选,很不错

    83.问如何在Tree空件上实现点右健选中Item并下拉出菜单,如同VC5中的Workspce窗口. 84.我想在CDialog类中的树控件中响应右键弹起这一消息 85.怎样在程序中启动缺省浏览器,并进入某一网址 86.建立一束特殊效果的黑光...

    C++MFC教程

    例如有两个窗口共用一个窗口过程代码,你在窗口一上按下鼠标时消息就会通过窗口一的句柄被发送到窗口一而不是窗口二。 5、示例:下面有一段伪代码演示如何在窗口过程中处理消息 LONG yourWndProc(HWND hWnd,UINT ...

    Delphi 7编程100例

    Delphi 7编程100例 ToolBar工具栏控件的使用 动态建立主菜单选项 窗口界面的动态分隔条 动态设置选项卡页面 在标题栏中自定义按钮 窗体开合窗帘效果 Windows XP界面效果 实现OutLook滚动工具栏效果 在下拉列表框中...

    Delphi编程100例

    在IE工具栏上增加一个按钮图标 软件注册机制的建立 复活节彩蛋的制作 SkinEngine控件——XP换肤 ActionList——应用程序通用功能列表 OleContainer——OLE容器 将程序项设置到控制面板 艺术化排列桌面图标 Delphi中...

Global site tag (gtag.js) - Google Analytics