导航:首页 > 编程语言 > 最简单的win32程序

最简单的win32程序

发布时间:2022-01-21 12:34:07

㈠ 一个简单的win32应用程序

#include<windows.h>
#include<stdio.h>
#define IDC_EDIT1 1
#define IDC_EDIT2 2
#define IDC_STATIC 3
#define IDC_BTN 4
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
HINSTANCE hinst;
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
TCHAR* classname="test";
hinst=hInstance;
WNDCLASS wndclass;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH)::GetStockObject(DKGRAY_BRUSH);
wndclass.hCursor=::LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon=::LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=WindowProc;
wndclass.lpszClassName=classname;
wndclass.lpszMenuName=NULL;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
::RegisterClass(&wndclass);

HWND hwnd=::CreateWindow(classname,TEXT("ADD"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
250,120,NULL,NULL,hInstance,0);

::ShowWindow(hwnd,nCmdShow);
::UpdateWindow(hwnd);

MSG msg;
while(::GetMessage(&msg,NULL,0,0)){
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
static double sum;
int c=01011;
static char a[20],b[20],s[40];
switch(uMsg)
{
case WM_CREATE:
{
::CreateWindow("EDIT","",WS_CHILD|WS_VISIBLE|ES_LEFT|ES_NUMBER,10,10,60,20,hwnd,(HMENU)IDC_EDIT1,hinst,0);
::CreateWindow("STATIC","+",WS_CHILD|WS_VISIBLE|SS_CENTER,70,10,30,20,hwnd,(HMENU)IDC_STATIC,hinst,0);
::CreateWindow("EDIT","",WS_CHILD|WS_VISIBLE|ES_LEFT|ES_NUMBER,100,10,60,20,hwnd,(HMENU)IDC_EDIT2,hinst,0);
::CreateWindow("BUTTON","=",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,170,10,60,20,hwnd,(HMENU)IDC_BTN,hinst,0);
}break;
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_BTN:
{
::GetDlgItemText(hwnd,IDC_EDIT1,a,20);
::GetDlgItemText(hwnd,IDC_EDIT2,b,20);
sum=atof(a)+atof(b);
sprintf(s,"%s+%s=%lf",a,b,sum);
HDC hdc=::GetDC(hwnd);
::TextOut(hdc,10,40,s,strlen(s));
::ReleaseDC(hwnd,hdc);
}break;
}
}break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc=::BeginPaint(hwnd,&ps);
::TextOut(hdc,10,40,s,strlen(s));
::EndPaint(hwnd,&ps);
}break;
case WM_DESTROY:
::PostQuitMessage(0);
break;
default:
return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}

㈡ 一个简单的win32窗口程序

HACCELhAccelTable;

hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_WIN32));

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

{

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

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

还要建立加速键表资源和相应项,指向菜单,或自定义的ID,

在wm_command或wm_syscommand中处理,和菜单类似

你可以建立默认的win32工程试试,或者是helloworld的win32工程,vs的几个版本应该差的不太多,里面应该含有例子

㈢ 最简单的Win32应用程序问题

switch句子有问题,搞的乱七八糟,代码些清晰点 // testarray.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<windows.h> #...

阅读全文

与最简单的win32程序相关的资料

热点内容
双击cad文件就启动新软件 浏览:939
有什么登记天数的app 浏览:846
qq性别修改器 浏览:533
rtl8192elinux 浏览:15
手机中qq群怎么改名字怎么改 浏览:621
微信小视频怎么用前置摄像头吗 浏览:572
c语言怎么用编程测标识符的合法性 浏览:815
iphone5s驱动下载 浏览:336
欣向路由器密码 浏览:850
sql数据库对比工具 浏览:575
300ap升级 浏览:981
为什么从邮箱里下载文件会不全 浏览:913
java大数据乘整数 浏览:136
cad打开文本txt文件 浏览:472
征途账号存在哪些文件 浏览:412
天气肇庆市路况工具 浏览:950
怎么导入js文件怎么打开 浏览:517
win8和linux双系统安装 浏览:328
苹果5按屏幕有紫色 浏览:272
qq已失效的文件怎么找回 浏览:63

友情链接