当前位置:   article > 正文

用C语言封装Windows程序_如何将c语言代码封装成系统

如何将c语言代码封装成系统

      为了使Windows SDK程序结构更为清晰,可利用C 函数把程序模块化的特定,对Windows程序进行封装

例如,用C语言编写在鼠标左键按下时,可在窗口的用户区显示一个字符串“Hello World!”的Windows程序。

     打开VC6.0,选择【File】-->Project-->Win32 Application,工程名为:fen2,

                      选择【File】--》C++ Source File--》命名为: op.c,代码如下:

//op.c

  1. #include <windows.h>
  2. #include <stdio.h>
  3. //定义全局变量
  4. HINSTANCE hInst;
  5. HWND hWnd;
  6. MSG msg;
  7. char lpszClassName[]="窗口";
  8. char *ShowText;
  9. //定义函数
  10. ATOM MyRegisterClass(HINSTANCE hInstance);//注册窗口类函数
  11. BOOL Create(HINSTANCE,int); //程序实例初始化函数
  12. int Run(); //消息循环函数
  13. LRESULT CALLBACK WndProc(HWND,UINT,
  14. WPARAM,LPARAM);//窗口函数
  15. //主函数
  16. int APIENTRY WinMain(HINSTANCE hInstance,
  17. HINSTANCE hPrevInstance,
  18. LPSTR lpCmdLine,
  19. int nCmdShow)
  20. {
  21. MyRegisterClass(hInstance); //定义和注册窗口类
  22. Create(hInstance,nCmdShow); //创建窗口
  23. ShowWindow(hWnd,nCmdShow); //显示窗口
  24. UpdateWindow(hWnd); //更新屏幕显示
  25. return Run(); //消息循环
  26. }
  27. //注册窗口类的函数
  28. ATOM MyRegisterClass(HINSTANCE hInstance)
  29. {
  30. WNDCLASS wc;
  31. wc.style=0;
  32. wc.lpfnWndProc=WndProc;
  33. wc.cbClsExtra=0;
  34. wc.cbWndExtra=0;
  35. wc.hInstance=hInstance;
  36. wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
  37. wc.hCursor=LoadCursor(NULL,IDC_ARROW);
  38. wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
  39. wc.lpszMenuName=NULL;
  40. wc.lpszClassName=lpszClassName;
  41. return RegisterClass(&wc);
  42. }
  43. //创建窗口的函数
  44. BOOL Create(HINSTANCE hInstance,int nCmdShow)
  45. {
  46. hWnd=CreateWindow(lpszClassName,
  47. "Windows",
  48. WS_OVERLAPPEDWINDOW,
  49. 120,50,800,600,
  50. NULL,
  51. NULL,
  52. hInstance,
  53. NULL);
  54. return TRUE;
  55. }
  56. //消息循环的函数
  57. int Run()
  58. {
  59. while(GetMessage(&msg,NULL,0,0))
  60. {
  61. TranslateMessage(&msg);
  62. DispatchMessage(&msg);
  63. }
  64. return msg.wParam;
  65. }
  66. //窗口函数
  67. LRESULT CALLBACK WndProc(HWND hWnd,UINT message, WPARAM wParam,LPARAM lParam)
  68. {
  69. PAINTSTRUCT ps;
  70. HDC hdc;
  71. switch(message)
  72. {
  73. case WM_LBUTTONDOWN:
  74. ShowText="Hello World!";
  75. InvalidateRect(hWnd,NULL,1);
  76. break;
  77. case WM_PAINT:
  78. hdc=BeginPaint(hWnd,&ps);
  79. TextOut(hdc,50,50,ShowText,strlen("Hello World!"));
  80. EndPaint(hWnd,&ps);
  81. break;
  82. case WM_DESTROY:
  83. PostQuitMessage(0);
  84. break;
  85. default:
  86. return DefWindowProc(hWnd,message,wParam,lParam);
  87. }
  88. return 0;
  89. }


效果如下:

   

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43393
推荐阅读
相关标签
  

闽ICP备14008679号