VC++ 怎样显示窗体?

作者&投稿:倪炕 (若有异议请与网页底部的电邮联系)
VC++中窗口创建之后如何修改让它最大化显示?~

CDialog::ShowWindow( SW_SHOWMAXIMIZED ); 就这个就能实现了.


void CPlayerDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
CDialog::ShowWindow( SW_SHOWMAXIMIZED );
}

在VC6/WIN32 Application平台下,写了个窗体API,显示时报错。代码如下,请高手指点一下!谢谢!
#include
#include
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // pointer to command line
int nCmdShow // show state of window
)
{
WNDCLASS wndclas;
wndclas.style=CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
wndclas.lpfnWndProc=WindowProc;
wndclas.cbClsExtra=0;
wndclas.cbWndExtra=0;
wndclas.hInstance=hInstance;
wndclas.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclas.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclas.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
wndclas.lpszMenuName=NULL;
wndclas.lpszClassName="abc";

RegisterClass(&wndclas);

HWND hwnd;
hwnd=CreateWindow("abc","asdfgh",WS_OVERLAPPEDWINDOW,100,100,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);
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
)
{
switch(uMsg)
{
case WM_CHAR:
char szChar[10];
sprintf(szChar,"char is %d",wParam);
MessageBox(hwnd,szChar,"char",MB_YESNO);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,50,50,"qazwsx",strlen("qazwsx"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
PAINTSTRUCT ps;
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,30,30,"ujmik",strlen("ujmik"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否关闭","message",MB_YESNO));
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam,lParam );
}
return 0;
}
以上代码能显示窗体,但不能响应鼠标键盘消息,报错说不能写入文

如果你是创建好了对话框资源,需要添加一个和他相关联的类。这个类是系统生成的,在资源管理器对话框界面上,点击右键,选择Class Wizard,的对话框中选择Create new。最后生成一个类,在使用对话框的cpp文件中加入如下代码,
#include <xxxDlg.h>
......
CxxxDlg dia;
dia.DoModual();
一个模态对话框就okay了,具体操作可能会遇到困难,可以hi我。

比如说你的”IDD_1“的类名为CDialogDlg;
在按下按钮后执行:
CDialogDlg dlg;
dlg.DoModal();
就弹出来了

1、工程中加入弹出窗口,类名为CInputBox,弹出窗口上加入一个TEXTBOX控件,设计关联变量为m_edit,将弹出窗口的头文件定义#include "InputBox.h"拷贝到父窗口。
2、输入下面程序:
CInputBox dlg;
dlg.DoModal();
CString temp=dlg.m_edit;
此时在弹出窗口的输入就会被赋给变量temp中


噶尔县18588766002: VC++ 怎样显示窗体? -
呼蓉消炎: 比如说你的”IDD_1“的类名为CDialogDlg;在按下按钮后执行:CDialogDlg dlg; dlg.DoModal(); 就弹出来了

噶尔县18588766002: 求VC++显示一个窗体的最简代码. -
呼蓉消炎: #include "stdafx.h"// 窗口函数的函数原形 LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char ...

噶尔县18588766002: 如何在vc++里面单击一个按钮弹出一个窗体? -
呼蓉消炎: 鼠标单击响应,如果你的这个窗体还没创建则create(); + ShowWindow(SW_SHOW); 如果已经创建则直接show就行` bbs.onlycpp.net 学习C++语言相关的可以进来看看`

噶尔县18588766002: VC++6.0怎么添加窗体 -
呼蓉消炎: 在左侧资源视图中,右键点击对话框(Dialog)文件夹,然后选择 插入对话框(Insert Dialog),即可添加一个窗口

噶尔县18588766002: vc++6.0的运行界面能否设置为窗口模式? -
呼蓉消炎: 你这样吧,你运行VC++的时候那个窗口是全屏的话,你就按下ALT+ENTER键,然后这个时候就是窗口模式了,然后你再点左上角的"控制按钮",然后会弹出一个菜单,你就选择"属性",这个时候就会弹出一个对话框选择"选项"这个选项卡,你会看到有一个"显示选项"里面有"窗口"和"全屏显示"你选择"窗口",然后点确定,这个时候它会问你是一直保存吗?还是当前保存,你就选择第二个"保存属性,供以后具有相同标题的窗口使用."然后再点确定.你再看看以后还会不会出现全屏的现象.

噶尔县18588766002: VC++从一个窗体中调用显示另一窗体 -
呼蓉消炎: 其实这个不难,要是你是用window API编程的话,那就新创建一个窗口类,然后在WM_COMMAND里面,对应你那个按钮的ID号添加消息,也就是调用另一个窗口.要是用MFC编写的话,也是需要一个类,通过VC++向导添加就可以了,然后在主窗口里面(CMainFram)添加消息映射和消息处理函数就行了.

噶尔县18588766002: VC++中如何弹出窗口 -
呼蓉消炎: 切换到资源视图,新建一个对话框,ctrl+w为这个对话框添加关联类(假设类名为CMeDialog).在需要弹出窗口的类源文件中添加#include "MeDialog.h"(对话框的类头文件).在需要弹出窗口的地方添加代码:CMeDialog medialog;medialog.DoModal();就ok了啊 !

噶尔县18588766002: VC++怎么通过按钮弹出窗口 -
呼蓉消炎: 假设你要弹出的窗口对应的类是CMyDlg,则在按钮响应函数里这样写: CMyDlg dlg; dlg.Domodal(); 另外,你说的关联子窗口是什么意思呢?是指访问子窗口里的成员吗?如果是这样的话,可以通过dlg来访问.

噶尔县18588766002: C++怎么用代码创建窗体? -
呼蓉消炎: 所有其他方式创建窗体,归根到底都是使用类似下面的代码,只是VC++帮你做了,你看不到而已.直接使用代码写对窗体可控性更强,更灵活.下面是代码 新建一个win32空项目(不是win32控制台),可以编译通过 还有问题按“在线交谈”...

噶尔县18588766002: 为什么VC++编写的程序运行后都是DOS窗口呢 怎么样能变成窗体 有图片有文字有按钮 yi我是新手 请高手指明 -
呼蓉消炎: 你说的那个是MFC 的..或者就是你自己写的程序调用API函数来实现窗口的显示的..你可以在建立过程的时候就建立MFC工程的.但是你要是不会的话,建议你最好是先看看关于这方面的书的.这个知识还是比较多的.而且比较难理解的.尤其是消息映射的.理解了才好往下面做的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网