admin 管理员组

文章数量: 1086019


2023年12月21日发(作者:adminlte教程)

我要做一个C语言的图形界面,用vc编,希望可以用鼠标点击

悬赏分:20 |

解决时间:2008-9-29 21:04 |

提问者:hahadieo

希望你能给一个例子,和常用的函数说明!

问题补充:

规定用vc

最佳答案

WINDOWS编程

#include "stdio.h"

#include "windows.h"

LRESULT CALLBACK wndproc(HWND hwnd,UINT uMsg,WPARAM

wParam,LPARAM lParam);

class win

{

public:

BOOL W_class(HINSTANCE hInstance);

BOOL create(HINSTANCE hInstance);

};

BOOL win::W_class(HINSTANCE hInstance)

{

WNDCLASS wdnclass;//设计窗口

=CS_HREDRAW|CS_VREDRAW;;//窗口

dProc=wndproc;//窗口指针很重要

xtra=0;//通常为0

xtra=0;//通常为0

nce=hInstance;//句柄

=LoadIcon(NULL,IDI_ERROR);//图标句柄

r=LoadCursor(NULL,IDC_CROSS);//光标句柄

kground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背色句柄

nuName=NULL;

assName=L"zhuzi";//类的名字

return (RegisterClass(&wdnclass));//注册窗口

}

BOOL win::create(HINSTANCE hInstance)

{

HWND hwnd;

hwnd=CreateWindow(L"zhuzi",L"猪",WS_OVERLAPPEDWINDOW,

200,200,600,400,NULL,NULL,

hInstance,NULL);

//显示窗口

ShowWindow(hwnd,SW_SHOWNORMAL);

UpdateWindow(hwnd);

return 1;

}

int WINAPI WinMain(

HINSTANCE hInstance, // handle to current instance

HINSTANCE hPrevInstance, // handle to previous instance

LPSTR lpCmdLine, // command line

int nCmdShow // show state

)

{

win window;

if(!window.W_class(hInstance))

return 0;

if(!(hInstance))

return 0;

//消息循环

MSG msg;

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

{

TranslateMessage(&msg);//接收消息

DispatchMessage(&msg);//将接收的消息处理

}

return 0;

}

//过程函数

LRESULT CALLBACK wndproc(HWND hwnd,UINT uMsg,WPARAM

wParam,LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

switch(uMsg)

{

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps);

TextOut(hdc,0,0,L"猪",(int)wcslen(L"猪"));

EndPaint(hwnd,&ps);

break;

case WM_CHAR:

char szchar[20];

sprintf_s(szchar,"ch%d",wParam);

MessageBox(hwnd,(LPCWSTR)szchar,L"zhuzi",MB_OK);

break;

case WM_LBUTTONDOWN:

if(IDYES==MessageBox(hwnd,L"猪编程",L"zhuzi",MB_YESNO))

{

HDC hDC;

hDC=GetDC(hwnd);

TextOut(hDC,150,150,L"猪万岁", (int)wcslen(L"猪万岁"));

ReleaseDC(hwnd,hDC);

}

break;

case WM_CLOSE:

if(IDYES==MessageBox(hwnd,L"真的退出",L"zhuzi",MB_YESNO))

{

DestroyWindow(hwnd);

}

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return DefWindowProc(hwnd,uMsg,wParam,lParam);

break;

}

return 0;

}


本文标签: 句柄 消息 函数 接收