首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

static 有什么用啊该怎么解决

2012-03-14 
static 有什么用啊?我把窗口创建弄到类里面,代码如下//////////////////////头文件里窗口创建函类////////

static 有什么用啊?
我把窗口创建弄到类里面,代码如下

//////////////////////头文件里窗口创建函类///////////////////////////////
class   cjwin
{
private:
HWND   hwnd;
        #define   WS_OVER   (WS_BORDER   |   WS_CAPTION   |   WS_MINIMIZEBOX   |   WS_SYSMENU)
WNDCLASS   wc;
public:

LRESULT   CALLBACK   lizelglgproc(HWND   hwnd,UINT   ms,WPARAM   wParam,LPARAM   lParam);
bool   CJwin(HINSTANCE   hInstance);
};

////////////////////CPP文件的具体过程///////////////////////
bool   cjwin::CJwin(HINSTANCE   hInstance)
{
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=CreateSolidBrush(RGB(127,127,127));
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hInstance=hInstance;
wc.lpfnWndProc=lizelglgproc;
wc.lpszClassName= "cn ";
wc.lpszMenuName=NULL;
wc.style=CS_HREDRAW|CS_VREDRAW;
RegisterClass(&wc);
hwnd   =   CreateWindow( "cn ", "我的第一个自创程序 ",WS_OVER,112,100,800,600,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
return   true;
}
LRESULT   cjwin::lizelglgproc(HWND   hwnd,
        UINT   ms,
        WPARAM   wParam,
        LPARAM   lParam)
{
switch(ms)
{
case   WM_DESTROY:
PostQuitMessage(0);
break;
default:
return   DefWindowProc(hwnd,ms,wParam,lParam);
}
return   0;
}


这样不行,而在“LRESULT   CALLBACK   lizelglgproc(HWND   hwnd,UINT   ms,WPARAM   wParam,LPARAM   lParam)”前面加个static   就行了,为什么啊?static   有什么用啊?在这里起了什么作用啊?

[解决办法]
窗口过程不能是 __thiscall 函数类型

类成员函数都是 __thiscall 函数类型

加上 static 就不是 __thiscall 了

热点排行