zoukankan      html  css  js  c++  java
  • 《windows程序设计》学习_2.2:初识消息,双键的使用

      1 /* 双键的使用 */
      2 
      3 #include <windows.h>
      4 
      5 
      6 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);    
      7 
      8 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
      9                    PSTR szCmdLine, int iCmdShow)
     10 {
     11     static TCHAR szAppName[] = TEXT ("HelloWin");
     12     HWND         hwnd;
     13     MSG          msg;
     14     WNDCLASS     wndclass;
     15     
     16     wndclass.style              = CS_HREDRAW | CS_VREDRAW  ;
     17     wndclass.lpfnWndProc        = WndProc ;
     18     wndclass.cbClsExtra         = 0 ;
     19     wndclass.cbWndExtra         = 0 ;
     20     wndclass.hInstance          = hInstance ;
     21     wndclass.hIcon              = LoadIcon(NULL,IDI_APPLICATION) ;
     22     wndclass.hCursor            = LoadCursor(NULL,IDC_ARROW) ;
     23     wndclass.hbrBackground      = (HBRUSH) GetStockObject(WHITE_BRUSH) ;
     24     wndclass.lpszMenuName       = NULL ;
     25     wndclass.lpszClassName      = szAppName ;
     26     
     27     if(!RegisterClass(&wndclass))
     28     {
     29         MessageBox(NULL, TEXT("This program requires Windows NT!"),
     30             szAppName, MB_ICONERROR);
     31         
     32         return 0;
     33     }
     34     
     35     hwnd = CreateWindow(szAppName,
     36         TEXT("The Hello Program"),
     37         WS_OVERLAPPEDWINDOW,
     38         CW_USEDEFAULT,
     39         CW_USEDEFAULT,
     40         CW_USEDEFAULT,
     41         CW_USEDEFAULT,
     42         NULL,
     43         NULL,
     44         hInstance,
     45         NULL);
     46     
     47     ShowWindow(hwnd , iCmdShow);
     48     UpdateWindow(hwnd);
     49     
     50     while(GetMessage (&msg, NULL, 0, 0))
     51     {
     52         TranslateMessage(&msg);
     53         DispatchMessage(&msg);
     54     }
     55     
     56     return msg.wParam;
     57 }
     58 
     59 LRESULT CALLBACK WndProc(HWND hwnd , UINT message , WPARAM wParam , LPARAM lParam)
     60 {
     61     HDC         hdc;
     62     PAINTSTRUCT ps;
     63     RECT        rect;
     64     
     65     switch(message)
     66     {
     67     case WM_CREATE:
     68 //        PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
     69         return 0;
     70         
     71     case WM_PAINT:
     72         hdc = BeginPaint(hwnd , &ps);
     73         
     74         GetClientRect(hwnd, &rect);
     75         
     76         DrawText(hdc , TEXT("Hello Windows 98!") , -1 ,&rect , 
     77             DT_SINGLELINE | DT_CENTER | DT_VCENTER);
     78         
     79         EndPaint(hwnd,&ps);
     80         
     81 //        PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
     82         return 0;
     83 
     84     case WM_LBUTTONDOWN:
     85         if(wParam & MK_RBUTTON)
     86             PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
     87         return 0;
     88 
     89     case WM_RBUTTONDOWN:
     90         if(wParam & MK_LBUTTON)
     91             PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
     92         return 0;
     93         
     94     case WM_DESTROY:
     95 //        PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
     96         PostQuitMessage(0);
     97         return 0;
     98     }
     99     return DefWindowProc(hwnd,message,wParam,lParam);
    100 }
  • 相关阅读:
    celery的使用和原理
    内核通知链
    数据流中的中位数
    二叉搜索树的后序遍历序列
    Javascript设计模式系统讲解与应用,JS设计模式详解
    微服务系列之ZooKeeper注册中心和Nacos注册中心
    微信小程序开发详解:小程序入门与实战-纯正商业级应用技术
    Java零基础该怎么去学习Java?学好Java应该如何去做?
    Flutter从入门到进阶实战携程网App项目详解
    Python升级3.6强力Django+杀手级Xadmin打造在线教育平台
  • 原文地址:https://www.cnblogs.com/Hewie/p/3422026.html
Copyright © 2011-2022 走看看