怎样用MFC做一个图形界面程序

怎样用MFC做一个图形界面程序,第1张

给你个最最简单的MFC程序。你可以打开2005 新建win32 程序 建立空项目 然后编写如下代码//hellocpp

#include <afxwinh>

// 说明应用程序类

class CHelloApp : public CWinApp

{

  public:

 virtual BOOL InitInstance();

};

// 建立应用程序类的实例

CHelloApp HelloApp;

// 说明主窗口

class CHelloWindow : public CFrameWnd

{

CStatic cs;

public:

CHelloWindow();

};

// 每当应用程序首次执行时都要调用的初始化函数

BOOL CHelloApp::InitInstance()

{

m_pMainWnd = new CHelloWindow();

m_pMainWnd->ShowWindow(m_nCmdShow);

m_pMainWnd->UpdateWindow();

return TRUE;

}

// 窗口类的构造函数

CHelloWindow::CHelloWindow()

{

// 建立窗口本身

Create(NULL,

  "Hello World!",

  WS_OVERLAPPEDWINDOW,

  CRect(0,0,200,200));

// 建立静态标签

cs = new CStatic();

cs->Create("hello world",

  WS_CHILD|WS_VISIBLE|SS_CENTER,

  CRect(50,80,150,150),

  this);

} 这样就出来了。

>

以下程序在Visual C++ 60测试通过,能够出现一个正规的Windows窗口

#pragma comment(linker,"/SUBSYSTEM:Windows  /ENTRY:mainCRTStartup")

#include <windowsh>

/ 使类名成为全局变量 /

char szClassName[ ] = "WindowsApp";

/ 这个函数由Windows内部函数DispatchMessage()调用 /

LRESULT CALLBACK WindowProcedure (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

HDC hdc ;

PAINTSTRUCT ps ;

RECT rect ;

switch (message)  / 处理信息 /

{

case WM_DESTROY:

PostQuitMessage (0);  / 发送WM_QUIT到消息队列 /

break;

case WM_PAINT:

hdc = BeginPaint (hWnd, &ps) ;

GetClientRect (hWnd, &rect) ;

DrawText (hdc, TEXT ("Hello, Windows NT!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

EndPaint (hWnd, &ps) ;

break ;

default:  / 不处理的消息 /

return DefWindowProc (hWnd, message, wParam, lParam);

}

return 0;

}

/ 下面是主函数 /

int main ( void )  

{

HINSTANCE hThisInstance = GetModuleHandle(NULL) ;

int nFunsterStil = SW_SHOW ;

HWND hWnd; / 这是窗口的句柄 /

MSG messages;/ 应用程序的消息保存在这里 /

WNDCLASSEX wincl;/ 窗口类的数据结构 /

/ 窗口结构 /

winclhInstance = hThisInstance;

wincllpszClassName = szClassName;

wincllpfnWndProc = WindowProcedure;/ 这个函数由Windows *** 作系统调用 /

winclstyle = CS_DBLCLKS; / 获取双击指令 /

winclcbSize = sizeof (WNDCLASSEX);

/ 使用默认图标和鼠标指针 /

winclhIcon = LoadIcon (NULL, IDI_APPLICATION);

winclhIconSm = LoadIcon (NULL, IDI_APPLICATION);

winclhCursor = LoadCursor (NULL, IDC_ARROW);

wincllpszMenuName = NULL; / 没有菜单 /

winclcbClsExtra = 0;/ 窗口类后面没有多余的字节 /

winclcbWndExtra = 0;/ 结构或者窗口实例 /

/ 使用窗口的默认颜色作为窗口的背景色 /

winclhbrBackground = (HBRUSH) COLOR_BACKGROUND;

/ 注册窗口类。如果注册失败,那么就退出程序 /

if (!RegisterClassEx (&wincl))

return 0;

/ 窗口类已被注册。创建它的程序 /

hWnd = CreateWindowEx (

0,

szClassName, / 类名 /

"Windows App", / 窗口标题栏的文字 /

WS_OVERLAPPEDWINDOW, / 默认窗口 /

CW_USEDEFAULT, / 窗口左上角的位置 /

CW_USEDEFAULT, / 窗口右下角的位置 /

544, / 窗口宽度(以“像素”位单位) /

375, / 窗口高度(以“像素”位单位) /

HWND_DESKTOP,/ 窗口是桌面的子窗口 /

NULL,/ 该窗口无菜单 /

hThisInstance, / 程序实例的句柄 /

NULL / 没有窗口创建的数据 /

);

/ 显示窗口 /

ShowWindow (hWnd, nFunsterStil);

/ 重绘窗口 /

UpdateWindow(hWnd);

/ 运行消息循环。循环到GetMessage()函数返回0 /

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

{

/ 把虚拟信息翻译成字符信息 /

TranslateMessage(&messages);

/ 发送信息到窗口过程 /

DispatchMessage(&messages);

}

/ 返回PostQuitMessage()函数的返回值 /

return messageswParam;

}

以上就是关于怎样用MFC做一个图形界面程序全部的内容,包括:怎样用MFC做一个图形界面程序、编写一个具有图形用户界面的Java程序、VC下的图形界面用c语言应该怎么编写应看什么教材望推荐!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9333439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存