您的位置:首页 > 编程语言 > C语言/C++

C/C++做的一个简单界面程序

2009-07-28 23:41 453 查看
#include "windows.h"
#include "resource.h"
#define ClassName "panweiguo"
#define Title "窗口应用程序"
//主窗口窗口大小位置
#define MainWindowLeft 300  //主窗口(0,0)坐标距离屏幕左边距离
#define MainWindowTop  200  //主窗口(0,0)左边距离屏幕顶部距离
#define MainWindowWide 600  //主窗口的宽度
#define MainWindowHeight 400 //主窗口的高度
//确定按钮的大小位置(相对)
#define OkButtonLeft  (260)//(0,0)点距离窗口右边界120
#define OkButtonTop   220 //距离窗口顶部100
#define OkButtonWide   75 //按钮长度为100
#define OkButtonHeight 35 //按钮宽度为35
//编辑框的大小位置(相对)
#define EditLeft  (150)//(0,0)点距离窗口右边界120
#define EditTop   140 //距离窗口顶部100
#define EditWide   300 //按钮长度为100
#define EditHeight 20 //按钮宽度为35
//定义ID
#define OkButtonId 1
#define Edit1Id      2

//函数声明
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
HWND hwnd;//主窗口的句柄
HWND hButton;//Ok按钮的句柄
HWND hEdit;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;
WNDCLASSEX cls={sizeof(WNDCLASSEX)};
cls.style=CS_HREDRAW|CS_VREDRAW;
cls.lpfnWndProc=WindowProc;
cls.cbClsExtra=0;
cls.cbWndExtra=0;
cls.hInstance=hInstance;
cls.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
cls.hCursor=NULL;
cls.hbrBackground=(HBRUSH)COLOR_WINDOW;
cls.lpszClassName=ClassName;
cls.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
cls.hIconSm=NULL;
//注册窗口类
ATOM dwReturn=RegisterClassEx(&cls);
if (!dwReturn){MessageBox(NULL,"注册窗口类的时候失败","消息中心",MB_OK|MB_ICONERROR);return 0;}//窗口注册失败处理
hwnd=CreateWindow(ClassName,Title,WS_OVERLAPPEDWINDOW|WS_VISIBLE,MainWindowLeft,MainWindowTop,MainWindowWide,MainWindowHeight,NULL,NULL,hInstance,NULL);
if (!hwnd){MessageBox(NULL,"创建窗口时错误","消息中心",MB_OK|MB_ICONERROR);return 0;}//创建窗口时失败
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
while(GetMessage(&msg,0,NULL,NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CLOSE:
PostQuitMessage(0);
break;
case WM_CREATE://窗口创建时发出的消息
//创建Button按钮
hButton=CreateWindow("button","确定",WS_VISIBLE|WS_CHILD,OkButtonLeft,OkButtonTop,OkButtonWide,OkButtonHeight,hwnd,(HMENU)OkButtonId,NULL,NULL);
if (!hButton){MessageBox(NULL,"创建按钮时失败","消息中心",MB_OK|MB_ICONERROR);}
ShowWindow(hButton,SW_SHOW);
//创建Edit编辑框
hEdit=CreateWindow("edit",NULL,WS_VISIBLE|WS_CHILD|WS_BORDER,EditLeft,EditTop,EditWide,EditHeight,hwnd,(HMENU)Edit1Id,NULL,NULL);
if (!hButton){MessageBox(NULL,"创建按钮时失败","消息中心",MB_OK|MB_ICONERROR);}
ShowWindow(hButton,SW_SHOW);
break;
case WM_COMMAND:
{
WORD hWord=HIWORD(wParam);
WORD lWord=LOWORD(wParam);

/*if (lWord==OkButtonId&&hWord==BN_CLICKED&&(HWND)lParam==hButton)
{
MessageBox(NULL,"你好","标题",MB_OK);
}*/
switch(lWord)
{
case ID_MENUITEM40001:
PostQuitMessage(0);
break;
case ID_MENUITEM40002:
ShellAbout(hwnd,"C/C++学习","本程序",NULL);
break;
case OkButtonId://这样写的话判断不出来是否是在双击等等但是对于按钮来说足够了
char buff[100]={0};
GetWindowText(hEdit,buff,100);
if (buff[0])
{
MessageBox(NULL,buff,"编辑框内容",MB_OK);
}
break;
}

}
break;

default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息