Science Valley分享 http://blog.sciencenet.cn/u/fbbai 从事运输设计咨询工作,对计算机、地球信息、复杂性科学有兴趣。

博文

VC++深入详解学习笔记(1)

已有 4476 次阅读 2009-3-22 01:50 |个人分类:学习笔记|系统分类:科研笔记


1.       MSG structure

Typedef struct tagMSG {

         HWND    hwnd;

         UINT      message;

         WPARAM  wParam;

         LPARAM   lParam;

         DWORD    time;

         POINT     pt;

} MSG, *PMSG;

2.       HANDLE, 资源的标识。

类似于指针的概念。

l  图标句柄(HICON

l  光标句柄(HCURSOR

l  画刷句柄(HBRUSH

3.       消息队列和消息响应

进队消息

不进队消息

4.       WinMain函数

int WINAPI WinMain

         HINSTANCE hInstance,       //当前运行的实例的句柄

           HINSTANCE hPrevInstance,   //Win32环境下,这个参数不再起作用

           HPSTR lpCmdLine,          //一个以空终止的字符串,指定传递给应用程序的命令行参数

           Int nCmdShow              //指定程序的窗口应该如何显示

);

WINAPI其实就是__stdcall

 

5.       窗口的创建

步骤:1.)设计一个窗口类;

      2.)注册窗口类;

      3.)创建窗口;

      4.)显示及更新窗口。

6.       WNDCLASS Structure

typedef struct {

    UINT        style;               //窗口类型

    WNDPROC   lpfnWndProc;         //窗口过程函数

    Int          cbClsExtra;           //追加一定字节数的类附加内存空间,一般为0

    Int          cbWndExtra;          //追加一定字节数的窗口附加内存空间,一般为0

    HINSTANCE   hInstance;           //包含窗口过程程序的实例句柄

    HICON       hIcon;              //HICON LoadIcon (HINSTANCE hInstance, LPCTSTR lpIconName)

    HCURSOR     hCursor;           //HCURSOR LoadCursor (HINSTANCE hInstance, LPCTSTR lpCursorName);

    HBRUSH      hbrBackground;      //HGDIOBJ GetStockObject (int fnObject);

    LPCTSTR      lpszMenuName;      //指定菜单资源的名字

    LPCTSTR       lpszClassName;      //指定窗口类的名字

} WNDCLASS, *PWNDCLASS;

 

         Typedef LRESULT (CALLBACK* WNDPROC) (HWND, UINT, WPARAM, LPARAM);

7.       RegisterClass

ATOM RegisterClass (CONST WNDCLASS *lpWndClass);

8.       CreateWindow

HWND CreateWindow(

  LPCTSTR    lpClassName,

  LPCTSTR    lpWindowName,

  DWORD    dwStyle,

  int         x,

  int         y,

  int         nWidth,

  int         nHeight,

  HWND     hWndParent,

  HMENU    hMenu,

  HANDLE    hInstance,

  PVOID      lpParam

);

9.       ShowWindow

BOOL ShowWindow(

  HWND hWnd,

  int nCmdShow

);

10.   UpdateWindow

BOOL UpdateWindow(

  HWND hWnd

);

11.   消息循环

BOOL GetMessage(

  LPMSG lpMsg,

  HWND hWnd,

  UINT wMsgFilterMin,

  UINT wMsgFilterMax

);

 

// 主消息循环:

while (GetMessage(&msg, NULL, 0, 0))

{

           if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))

           {

                    TranslateMessage(&msg);

                    DispatchMessage(&msg);

           }

}

12.   WindowProc

LRESULT CALLBACK WindowProc(

  HWND hwnd,

  UINT uMsg,

  WPARAM wParam,

  LPARAM lParam

);

13.   DestroyWindow

BOOL DestroyWindow(

  HWND hWnd

);

14.   DefWindowProc

LRESULT DefWindowProc(

  HWND hWnd,

  UINT Msg,

  WPARAM wParam,

  LPARAM lParam

);

15.   __stdcall

The __stdcall calling convention is used to call Win32 API functions. The callee cleans the stack, so the compiler makes vararg functions __cdecl. Functions that use this calling convention require a function prototype.

 



https://blog.sciencenet.cn/blog-87929-221746.html

上一篇:铁路建设“不差钱”
下一篇:Matlab使用笔记(1)
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-13 14:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部