Microsoft Visual C++里制作一个Windows窗口的代码是什么?

我是初学者,现在只会用MessageBox,要做一个Windows的窗口要怎么写呢?

第1个回答  2006-08-25
把以下文件编译就可以了,直接用VC打开,然后编译、运行,Ok
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppNume[]=TEXT("HelloWin");
HWND hWnd;
MSG msg;
WNDCLASS wndclass;

wndclass.style = CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppNume;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppNume,MB_ICONERROR);

return 0;
}

hWnd = CreateWindow(szAppNume, //window class name
TEXT("The Hello Program"), //window caption
WS_OVERLAPPEDWINDOW, //window style
CW_USEDEFAULT, //initial x postion
CW_USEDEFAULT, //initial y postion
CW_USEDEFAULT, //initial x size
CW_USEDEFAULT, //initial y size
NULL, //parent window handle
NULL, //window menu handle
hInstance, //program instance handle
NULL); //creation parameters
ShowWindow(hWnd,iCmdShow);
UpdateWindow(hWnd);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;

switch(message)
{
case WM_CREATE:
break;
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);

DrawText(hdc,TEXT("Hello,Windows 2000!"),-1,&rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,message,wParam,lParam);
}
第2个回答  2006-08-25
#include<afxwin.h>
我用MFC写的一个小例子,希望对你有帮助
class CMyFrameWnd:public CFrameWnd
{
private:
CStatic* m_pStatic;
CButton* m_pButton;
protected:
DECLARE_MESSAGE_MAP()
public:

CMyFrameWnd()
{
Create(NULL,"我的窗口");
m_pStatic = new CStatic();
m_pButton = new CButton();
m_pStatic->Create("我是一个标签",WS_CHILD|WS_VISIBLE|SS_CENTER|SS_GRAYRECT,CRect(200,200,100,100),this,1000);
m_pButton->Create("我是一个按钮",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(0,0,100,30),this,2000);
this->SendMessage(WM_COMMAND,2000,0);
}
~CMyFrameWnd()
{
delete m_pStatic;
delete m_pButton;
}
afx_msg void OnPaint();
afx_msg void OnClick();

};

class CMyApp:public CWinApp
{
public:

BOOL InitInstance();
};
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMyFrameWnd();
m_pMainWnd->ShowWindow(3);
m_pMainWnd->UpdateWindow();
return TRUE;

};
void CMyFrameWnd::OnPaint()
{
CPaintDC dc(this);
CRect rect;
this->GetClientRect(&rect);
CBrush brush;
brush.CreateSolidBrush(RGB(0,255,0));
dc.FillRect(rect,&brush);
dc.SetTextColor(RGB(255,0,0));
// dc.SetBkColor(RGB(0,0,200));
dc.TextOut(rect.Width()/2,rect.Height()/2,"MFC应用程序");

}
void CMyFrameWnd::OnClick()
{
MessageBox("你单击了我!");
::SetWindowText(m_hWnd,"改变窗口");

}
BEGIN_MESSAGE_MAP(CMyFrameWnd,CFrameWnd)
ON_WM_PAINT()
ON_COMMAND(2000,CMyFrameWnd::OnClick)
END_MESSAGE_MAP()
CMyApp theapp;
第3个回答  2006-08-25
这个东西说来复杂了,一般的作法是:继承一个WNDCLASS类,创建一个新的类,然后重载一个初始化的虚拟函数,对窗口的参数进行初始化。然后注册这个类,再调用它,然后把窗口显示出来并进行相应的消息响应。

这个东西不是一两句话说得清的,我现在也在学习这个软件,你对这个有兴趣的话,发信息给我,加我QQ。
第4个回答  2006-08-25
用MFC,file->new->projects->MFC AppWizard(exe),点击下一步进行配置就可以生成了,根据你自己的需要可以生成单文档、多文档或者基于对话框的
第5个回答  2006-08-25
建议你看MFC编程实例这本书,
要先注册一个窗口类AfxRegisterWndClass.然后就可以创建窗口了,用CreateWindow函数.
你也可以用VC App Wizard 来生成一个框架,然后自己看是怎么做的
Microsoft Visual C++里制作一个Windows窗口的代码是什么?
include <windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){ static TCHAR szAppNume[]=TEXT("HelloWin");HWND

.C++怎么去编写那种有窗口界面的程序
1、首先打开QtCreator应用程序,新建一个qt工程。2、然后灯工程建立完毕,代码编辑界面出现,双击左侧的dialog.ui,将会打开图形界面编辑器。3、然后在中间的窗口中拖入一个按钮,一个文本框。左键按住Push Button按钮和Line Edit按钮不放,拖到界面上。4、然后把窗口的大小调整到想要的样式。5、然后点击...

C++ Windows MFC 窗口(1)——第一个窗口
编写代码实现窗口功能 编写 example_1.h 和 example_1.cpp 文件,分别定义应用程序类和窗口类,包括初始化、事件映射和消息处理等 使用 CMyApp 类作为应用程序基类,定义窗口类 CMainDialog,实现窗口初始化、事件处理和销毁操作等 在 CMainDialog 类中,重写初始化函数 InitInstance(),完成窗口的创建和...

Visual C++创建CLR的windows窗体应用程序和Visual C#的windows窗体应用程...
CLR是Common Language Runtime的缩写,和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和回收)。Visual C++创建CLR的windows窗体应用程序,是以C++为语言基础,使用CLR管理资源的编程模式,为了扩展性,也允许在托管代码中嵌入非托管代码(即传统的内存分配回收模式)。而Visual C#的windows窗...

visual c++中怎样进行窗体的初始化?在哪编写代码?
C++顺序:visual studio->commen->MSDEV98->BIN->MSDEV 然后会跳出一个“你知道吗...(Do you know...)”的对话框,直接关掉,点“文件”->“新建”,从跳出来的对话框选“文件”标签,再从里面选“C++源程序”,命名,确定。如果你用的是英文版的,点"Flie"->"New",点"Flies"标签,选择...

VS2013编辑C++ 一个窗口程序显示LRESULT 是未定义标识符 要如何解决...
要解决VS2013编辑C++窗口程序时出现的“LRESULT 是未定义标识符”问题,可以按照以下步骤进行:确保包含Windows头文件:检查#include <windows.h>:确保你的源代码文件中包含了windows.h头文件。LRESULT是在这个头文件中定义的,因此缺少这个头文件会导致编译错误。检查头文件包含顺序:如果你的项目中包含了...

visual c++中怎样进行窗体的初始化?在哪编写代码?
打开Visual C++顺序:visual studio->commen->MSDEV98->BIN->MSDEV 然后会跳出一个“你知道吗...(Do you know...)”的对话框,直接关掉,点“文件”->“新建”,从跳出来的对话框选“文件”标签,再从里面选“C++源程序”,命名,确定。如果你用的是英文版的,点"Flie"->"New",点"Flies"...

如何用MicrosoftVisualC++6.0编写程序
Hello,VC++6.0!”的输出,这就意味着程序已成功执行。总结来说,使用VisualC++6.0编写程序主要包括新建文件、编写代码、编译和执行四个步骤。如果你对每个步骤都有所了解并熟练操作,那么就能顺利地完成程序开发。想深入了解的话,可以参考相关资料,如百度百科中的MicrosoftVisualC++6.0介绍。

Microsoft Visual C++ 6.0打开后怎么编程
在Microsoft Visual C++ 6.0中启动编程,首先需要进行工程的创建。具体步骤是:打开Visual C++ 6.0后,点击“文件”菜单下的“新建”,在弹出的对话框中,选择左侧的“工程”选项,随后在右侧的工程类型列表中找到并选择“Win32 Console Application”。接下来,在右侧的工程名称框中输入你希望的工程名称...

我用Microsoft Visual Studio 2010 新建一个 C++ 的对话框窗口程序的时...
属性里可以设置,还可以在代码中设置,在OnInitDialog中加入:SetWindowText("改名了!");

相似回答