13windows_static静态标签

13windows_static静态标签

  1. #include <windows.h>
  2. #include <iostream>
  3. #include "resource.h"
  4. /**
  5. *dat : 2015-05-22 10:59:53
  6. *file : F:\long\win32 study\Win32_Project\13Windows_static\13windows_static.cpp
  7. *file base: 13windows_static
  8. *say: 本函数说明了静态框如果添加文字及图片,如何使用STN_CLICK消息
  9. */
  10. CHAR szText[256] = { 0 };
  11. #define PrintLog(x) WriteConsole(g_hStdout, x, strlen(x), NULL, NULL)
  12. HINSTANCE g_hInst = NULL; //窗口句柄
  13. HANDLE g_hStdout = NULL; //控制台句柄
  14. //OnCommand
  15. void OnCommand(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  16. {
  17. int nCmdID = HIWORD(wParam);//父窗口的ID
  18. int nCtrlID = LOWORD(wParam);//控件ID
  19. switch (nCtrlID)
  20. {
  21. //变换图标
  22. case ID_CHANGICON:
  23. {
  24. HICON hIcon = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON1));
  25. HWND hStatic = GetDlgItem(hWnd, 1002); //根据子控件ID获得ID所对应的句柄
  26. SendMessage(hStatic, STM_SETICON, (WPARAM)hIcon, 0);
  27. }
  28. break;
  29. //静态框截获点击消息
  30. case 1001:
  31. switch (nCmdID)
  32. {
  33. case STN_CLICKED:
  34. MessageBox(NULL, "nCmdID", "static", MB_OK);
  35. break;
  36. }
  37. break;
  38. case 1002:
  39. switch (nCmdID)
  40. {
  41. case STN_CLICKED:
  42. MessageBox(NULL, "nCmdID_pic", "static_pic", MB_OK);
  43. break;
  44. }
  45. }
  46. }
  47. //OnCreate静态框
  48. void OnCreate(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  49. {
  50. //文字风格
  51. CreateWindow("STATIC", "哈喽!静态框",
  52. WS_CHILD/*子窗口*/ | WS_VISIBLE | SS_SUNKEN | SS_SIMPLE/*独有的风格*/|SS_NOTIFY/*让窗口能点击风格*/,
  53. 50, 50, 100, 100, hWnd, (HMENU)1001, g_hInst, NULL);
  54. //图片风格
  55. CreateWindow("STATIC", "#101"/*把对应的ID资源号弄进来*/,
  56. WS_CHILD | WS_VISIBLE | SS_ICON | SS_SUNKEN|SS_NOTIFY/*让窗口能点击风格*/,
  57. 200, 50, 100, 100, hWnd, (HMENU)1002, g_hInst, NULL);
  58. }
  59. LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  60. {
  61. switch (nMsg)
  62. {
  63. case WM_COMMAND:
  64. OnCommand(hWnd, nMsg, wParam, lParam);
  65. break;
  66. case WM_CREATE://静态框要在WM_CREATE消息中创建
  67. OnCreate(hWnd, nMsg, wParam, lParam);
  68. break;
  69. case WM_DESTROY:
  70. PostQuitMessage(0);
  71. break;
  72. }
  73. return DefWindowProc(hWnd, nMsg, wParam, lParam);
  74. }
  75. BOOL RegisterWnd(LPSTR pszClassName)
  76. {
  77. WNDCLASSEX wce = { 0 };
  78. wce.cbSize = sizeof(wce);
  79. wce.cbClsExtra = 0;
  80. wce.cbWndExtra = 0;
  81. wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);
  82. wce.hCursor = NULL;
  83. wce.hIcon = NULL;
  84. wce.hIconSm = NULL;
  85. wce.hInstance = g_hInst;
  86. wce.lpfnWndProc = WndProc;
  87. wce.lpszClassName = pszClassName;
  88. wce.lpszMenuName = NULL;
  89. wce.style = CS_HREDRAW | CS_VREDRAW;
  90. ATOM atom = RegisterClassEx(&wce);
  91. if (atom == NULL)
  92. {
  93. return FALSE;
  94. }
  95. else
  96. {
  97. return TRUE;
  98. }
  99. }
  100. HWND CreateWnd(LPSTR pszClassName)
  101. {
  102. HMENU hMen = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENU1));
  103. HWND hWnd = CreateWindowEx(0, pszClassName, "灭天", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  104. CW_USEDEFAULT, NULL, hMen, g_hInst, 0);
  105. return hWnd;
  106. }
  107. void ShowWnd(HWND hWnd)
  108. {
  109. ShowWindow(hWnd, SW_SHOW);
  110. UpdateWindow(hWnd);
  111. }
  112. void Msg()
  113. {
  114. MSG msg = { 0 };
  115. while (GetMessage(&msg, NULL, 0, 0))
  116. {
  117. TranslateMessage(&msg);
  118. DispatchMessage(&msg);
  119. }
  120. }
  121. void ConsoleWnd()
  122. {
  123. AllocConsole();
  124. g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  125. CHAR szText[] = "Debug start:\n";
  126. WriteConsole(g_hStdout, szText, strlen(szText), NULL, NULL);
  127. }
  128. int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
  129. {
  130. g_hInst = hInstance;
  131. //ConsoleWnd();
  132. RegisterWnd("oooo");
  133. HWND hWnd = CreateWnd("oooo");
  134. ShowWnd(hWnd);
  135. Msg();
  136. return 0;
  137. }

来自为知笔记(Wiz)

时间: 2024-08-04 20:42:04

13windows_static静态标签的相关文章

挨踢部落第一期:Spark离线分析维度

活动说明:挨踢部落是为核心开发者提供深度技术交流,解决开发需求,资源共享的服务社群.基于此社群,我们邀请了业界技术大咖对开发需求进行一对一突破,解除开发过程中的绊脚石.以最专业.最高效的答复为开发者解决开发难题. 话题关键词: 大数据  spark  数据分析  数据画像 部落阵容:徐韬,龙珠直播大数据主管:王劲,数果科技 联合创始人: 面向对象:初级开发工程师,数据分析师,运维工程师 参与方式:加入51CTO开发者QQ交流群 370892523 ,有任何技术问题,在群里提问,或发给群主小官.

初识jsp

复习: 1.servlet生命周期: (1)默认是以第一次请求的时候创建并初始化Servlet,而且只做一次.(构造函数 init()) web.xml(配置后,是可以达到在服务启动后,立刻进行servlet对象的创建和初始化) (2)调用servlet方法,(1.接收2.处理3.响应)根据提交方式,来调用doGet或doPost (3)销毁servlet对象,destroy() 2.请求转发和重定向: (1)请求转发: 采用request.getRequestDispatcher("响应者&q

Xcode7中添加3DTouch

---恢复内容开始--- 首先是插件SBShortcutMenuSimulator的安装 1.git clone https://github.com/DeskConnect/SBShortcutMenuSimulator.git 2.cd SBShortcutMenuSimulator 3.make 4.xcrun simctl spawn booted launchctl debug system/com.apple.SpringBoard --environment DYLD_INSERT

Frame

frame允许我们在多个独立于窗口的视图(view)里表现文档(document),多视图使我们很方便,比如我可以让有些信息可见.其他信息不可见(比如滚动显示).举例来说,我们可以在同一个窗口内,让一个frame显示静态标签,而让另一个frame显示导航菜单,第三个frame显示能滚动的document,如何滚动却由第二个frame来选择.是不是很有意思?下面给出一个例子: frameset 元素可定义一个框架集合.它被用来组织多个窗口(框架).每个框架存有独立的文档. <html> <

关于HTML5的啰啰嗦嗦

其实HTML的历史可以追溯到很久以前,1993年的那个夏天当它首次以草案的形式发布时,全世界似乎还没有意识到互联网时代已经将要到来.当然在整个90年代人们见证了HTML的茁壮成长,从2.0版,到3.2版本和4.0版本( 因为网景公司和微软公司的狗咬狗, 1997年出了两个版本),再到1999年的4.01版.随着HTML的发展.W3C(万维网联盟)实际已经控制了HTML的规范制定权. 然而,风云突变,当时业内的一些权威觉得HTML经过不到10年的成长,已经开始穷途末路了.当时Xml和XHTML替换

挨踢部落坐诊第三期:Python在大数据处理上的优势分析

挨踢部落是为核心开发者提供深度技术交流,解决开发需求,资源共享的服务社群.基于此社群,我们邀请了业界技术大咖对开发需求进行一对一突破,解除开发过程中的绊脚石.以最专业.最高效的答复为开发者解决开发难题. Python 话题关键词:数据库 Android 部落阵容:侯圣文,恩墨学院联合创始人: 面向对象:移动开发者.IT运维.数据分析师 参与方式:加入51CTO开发者QQ交流群370892523,有任何技术问题,在群里提问,或发给群主小官. 活动详情: 问:郑州-白杨-Web:现在还有业务在使用S

Fragment分解使用

Fragment碎片:作为Activity的一部分,不能单独使用: 1. Fragment特点: (1)一个Fragment可以在多个Activity中重用: (2)一个Activity内部可以嵌入多个Fragment: 2. Fragment生命周期: 1)启动app: Activity:onCreate()àonStart()àonResume(): Fragment: onAttach()àonCreate()àonCreateView()àonActivityCreated()àonSt

3DTouch

3DTouch 一.主屏按压(Home Screen Quik Actions) 1.静态标签 在info.plist文件中新增项 关键字 意义 UIApplicationShortcutItems 数组中的元素就是我们的那些快捷选项标签. UIApplicationShortcutItemTitle 标签标题(必填) UIApplicationShortcutItemType 标签的唯一标识 (必填) UIApplicationShortcutItemIconType 使用系统图标的类型,如搜

iOS9系列专题一——3D Touch

新的触摸体验--iOS9的3D Touch 一.引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了一个压力的感触,通过区分轻按和重按来进行不同的用户交互. 二.在模拟器上学习和测试3D Touch 3D Touch是一个很新颖的设计,可是苹果文档有言: With Xcode 7.0 you must develop on a device that supports 3D Touch. Simu