下面是一个c++下的windows窗口程序。运行的结果是一个对话框。
如果你想对这个有点了解的话就去看孙鑫老师的教程。好像是在第3章还是多少来着我也忘了。。
#include
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{
MessageBox(NULL,"Hello 欢迎使用Turbo C for Windows 集成实验与学习环境!","我的第一个Windows程序",MB_OK);
return 0;
}
但是要想要达到你说的效果的话就有点麻烦了。要用很多的API函数了
首先要创建一个窗口。CreateWind()..创建按钮。CreateButton()具体的函数你到MSDN里面去查都有具体用法的也不知道单词写错了没.....
在C++里面其实就是一个实例(类的实体)和Java差不多的。
这下面是我这些天看视频后的结果。希望你也看看。孙鑫老师的第一章。。
写的很详细了。下面的程序运行的结果就是一个窗口,可以关。其他的没什么功能了。如果你要更多的功能就去看视频吧!!
问题补充:
//基于消息响应机制
//关于设置:Project Settings -> Link 选项卡 -> 将/SUBSYTEM:CONSOLE开关设置为 “未设置”或/SUBSYSTEM:WINDOWS就可以了
//如果不设置的话有可能出现link error 2001 的错误
#include"windows.h"
#include"stdio.h"
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(
HINSTANCE hInstance,//当前的实例句柄
HINSTANCE hPrevInstance,//先前的一个实例句柄、假设没有的话究是空
LPSTR lpCmdLine,//长指针,命令行参数
int nCmdShow //显示方式.如是最大化.不显示..
)
{
//设计一个窗口类WNDCLASS style
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW; //窗口显示类型
wndclass.lpfnWndProc=WinSunProc; //回调函数
wndclass.cbClsExtra=0; //附加参数
wndclass.cbWndExtra=0; //附加参数
wndclass.hInstance=hInstance; //代表当前的实例号
wndclass.hIcon=LoadIcon(NULL,IDI_ERROR); //图标句柄,指示窗口左上角的那个小图标
wndclass.hCursor=LoadCursor(NULL,IDC_CROSS); //光标句柄,在应用程序窗口中的光标
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);// 窗口背景
wndclass.lpszClassName="Hello" ; //类名
wndclass.lpszMenuName=NULL; //窗口所用的菜单
wndclass.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH);
//注册窗口类
RegisterClass(&wndclass);
//创建窗口
HWND hwnd;
hwnd=CreateWindow("Hello","标题栏", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,
hInstance,NULL);//里面的各个参数就不多说了,看MSDN
//显示窗口更新窗口
ShowWindow(hwnd,SW_SHOWNORMAL); //显示
UpdateWindow(hwnd); //更新
//消息循环
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(uMsg)
{case WM_CHAR:
char a[10];
sprintf(a,"CHAR IS %d",wParam);
MessageBox(hwnd,a,"hello",MB_OKCANCEL);
break;
case WM_CLOSE:
DestroyWindow(hwnd); //销毁窗口
break;
case WM_DESTROY:
PostQuitMessage(0); //反回一个WM_QUIT消息,getmessage得到的是WM_QUIT的时
//候就返回0就可以退出消息循环
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
}
难得还有如此执着的编程者,呵呵,前几天我用JAVA一行一行写觉得好郁闷~~
VC的话也许要稍微学点MFC了,稍微有点复杂,不过你要的功能不多,很快应该能学会。不会的时候去MSDN查。
其实细节也很简单,一般就是使用定义好的类(文本框、按钮等),构造他们的对象,设置对象参数,然后把这些对象加载在窗口里,最后再写对象的操作,比如按钮按下后进行什么后续操作。
vb可以轻松解决你的需求,而且简单易懂。
新建一个mfc工程就可以了 一行代码不用写