应该用MFC
Appwizard
(exe)。
输入工程名后点OK,在向导对话框的第一步(Step
1)里选择Dialog
based,然后直接点Finish就生成了一个对话框程序,这时编译运行就出现了一个基于对话框的程序界面——简单吧?
不过这个程序界面只有确定和取消按钮,你需要“画”出自己的程序!即在资源视图(ResourceView)里点开
树状结构
Dialog节点下的对话框资源,出现对话框编辑的界面,把控件工具上的控件拖入对话框里,摆放好位置,设置属性就行了。
这时候,你的程序就有了漂亮的外表,但是,要让它有实用价值,比如点击菜单执行什么 *** 作,就要你加入相应的程序代码了。
新建mfc项目,选择对话框还是单文档的,然后在界面上拖控件,至于添加数据源-首先选择类视图(classView)右键添加类,然后在d出的对话框中添加类名称,在“base class”上选择CRecordSet就能添加数据表的数据集了
先说明一下,那个黑框就是所谓的“Win32控制台应用程序”它使用的是main()或_tmain()作为入口点,而“图形界面”(也就是“Win32应用程序”或是“MFC应用程序”)
“VS2012项目创建“如图:
这里的Win32应用程序在”Win32项目“里创建!
创建Win32应用程序需要绘制窗口,创建按钮等高级控件,并把控件”链接“到一个函数上,这样就在用户按下按钮时执行函数,如果要用窗口显示东西也是可以的,把你要执行的代码放在初始化函数体中,并进行一系列的 *** 作,具体可以自己到网上找找!
望采纳!谢谢!!
#include
"stdafxh"
#include
"th"
#define
MAX_LOADSTRING
100
//
全局变量:
HINSTANCE
hInst;
//
当前实例
TCHAR
szTitle[MAX_LOADSTRING];
//
标题栏文本
TCHAR
szWindowClass[MAX_LOADSTRING];
//
主窗口类名
//
此代码模块中包含的函数的前向声明:
ATOM
MyRegisterClass(HINSTANCE
hInstance);
BOOL
InitInstance(HINSTANCE,
int);
LRESULT
CALLBACK
WndProc(HWND,
UINT,
WPARAM,
LPARAM);
INT_PTR
CALLBACK
About(HWND,
UINT,
WPARAM,
LPARAM);
int
APIENTRY
_tWinMain(HINSTANCE
hInstance,
HINSTANCE
hPrevInstance,
LPTSTR
lpCmdLine,
int
nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
//
TODO:
在此放置代码。
MSG
msg;
HACCEL
hAccelTable;
//
初始化全局字符串
LoadString(hInstance,
IDS_APP_TITLE,
szTitle,
MAX_LOADSTRING);
LoadString(hInstance,
IDC_T,
szWindowClass,
MAX_LOADSTRING);
MyRegisterClass(hInstance);
//
执行应用程序初始化:
if
(!InitInstance
(hInstance,
nCmdShow))
{
return
FALSE;
}
hAccelTable
=
LoadAccelerators(hInstance,
MAKEINTRESOURCE(IDC_T));
//
主消息循环:
while
(GetMessage(&msg,
NULL,
0,
0))
{
if
(!TranslateAccelerator(msghwnd,
hAccelTable,
&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return
(int)
msgwParam;
}
//
//
函数:
MyRegisterClass()
//
//
目的:
注册窗口类。
//
//
注释:
//
//
仅当希望
//
此代码与添加到
Windows
95
中的“RegisterClassEx”
//
函数之前的
Win32
系统兼容时,才需要此函数及其用法。调用此函数十分重要,
//
这样应用程序就可以获得关联的
//
“格式正确的”小图标。
//
ATOM
MyRegisterClass(HINSTANCE
hInstance)
{
WNDCLASSEX
wcex;
wcexcbSize
=
sizeof(WNDCLASSEX);
wcexstyle
=
CS_HREDRAW
|
CS_VREDRAW;
wcexlpfnWndProc
=
WndProc;
wcexcbClsExtra
=
0;
wcexcbWndExtra
=
0;
wcexhInstance
=
hInstance;
wcexhIcon
=
LoadIcon(hInstance,
MAKEINTRESOURCE(IDI_T));
wcexhCursor
=
LoadCursor(NULL,
IDC_ARROW);
wcexhbrBackground
=
(HBRUSH)(COLOR_WINDOW+1);
wcexlpszMenuName
=
MAKEINTRESOURCE(IDC_T);
wcexlpszClassName
=
szWindowClass;
wcexhIconSm
=
LoadIcon(wcexhInstance,
MAKEINTRESOURCE(IDI_SMALL));
return
RegisterClassEx(&wcex);
}
//
//
函数:
InitInstance(HINSTANCE,
int)
//
//
目的:
保存实例句柄并创建主窗口
//
//
注释:
//
//
在此函数中,我们在全局变量中保存实例句柄并
//
创建和显示主程序窗口。
//
BOOL
InitInstance(HINSTANCE
hInstance,
int
nCmdShow)
{
HWND
hWnd;
hInst
=
hInstance;
//
将实例句柄存储在全局变量中
hWnd
=
CreateWindow(szWindowClass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if
(!hWnd)
{
return
FALSE;
}
ShowWindow(hWnd,
nCmdShow);
UpdateWindow(hWnd);
return
TRUE;
}
//
//
函数:
WndProc(HWND,
UINT,
WPARAM,
LPARAM)
//
//
目的:
处理主窗口的消息。
//
//
WM_COMMAND
-
处理应用程序菜单
//
WM_PAINT
-
绘制主窗口
//
WM_DESTROY
-
发送退出消息并返回
//
//
LRESULT
CALLBACK
WndProc(HWND
hWnd,
UINT
message,
WPARAM
wParam,
LPARAM
lParam)
{
int
wmId,
wmEvent;
PAINTSTRUCT
ps;
HDC
hdc;
switch
(message)
{
case
WM_COMMAND:
wmId
=
LOWORD(wParam);
wmEvent
=
HIWORD(wParam);
//
分析菜单选择:
switch
(wmId)
{
case
IDM_ABOUT:
DialogBox(hInst,
MAKEINTRESOURCE(IDD_ABOUTBOX),
hWnd,
About);
break;
case
IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return
DefWindowProc(hWnd,
message,
wParam,
lParam);
}
break;
case
WM_PAINT:
hdc
=
BeginPaint(hWnd,
&ps);
//
TODO:
在此添加任意绘图代码
EndPaint(hWnd,
&ps);
break;
case
WM_DESTROY:
PostQuitMessage(0);
break;
default:
return
DefWindowProc(hWnd,
message,
wParam,
lParam);
}
return
0;
}
//
“关于”框的消息处理程序。
INT_PTR
CALLBACK
About(HWND
hDlg,
UINT
message,
WPARAM
wParam,
LPARAM
lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch
(message)
{
case
WM_INITDIALOG:
return
(INT_PTR)TRUE;
case
WM_COMMAND:
if
(LOWORD(wParam)
==
IDOK
||
LOWORD(wParam)
==
IDCANCEL)
{
EndDialog(hDlg,
LOWORD(wParam));
return
(INT_PTR)TRUE;
}
break;
}
return
(INT_PTR)FALSE;
}
以上就是关于vc++ mfc 怎么做界面啊全部的内容,包括:vc++ mfc 怎么做界面啊、怎样用VC++6.0弄出有图形界面的程序、VC运行的程序都是一个黑框界面,能不能不是黑框而是图形界面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)