① 如何用C语言开发窗体应用程序。。
生产窗体可以使用函数。
函数功能:该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。
函数原型:
CreateWindowEx函数创建一个层叠的,自动弹出的(pop-up)或是一个子窗口通过扩展格式。另外这个函数的作用与CreateWindow函数的作用相同。要获得更多的关于创建窗口的信息和关于CreateWindowEx函数参数的详细描述。参见CreateWindow
HWND CreateWindowEx(
DWOR DdwExStyle, //窗口的扩展风格
LPCTSTR lpClassName, //指向注册类名的指针
LPCTSTR lpWindowName, //指向窗口名称的指针
DWORD dwStyle, //窗口风格
int x, //窗口的水平位置
int y, //窗口的垂直位置
int nWidth, //窗口的宽度
int nHeight, //窗口的高度
HWND hWndParent, //父窗口的句柄
HMENU hMenu, //菜单的句柄或是子窗口的标识符
HINSTANCE hInstance, //应用程序实例的句柄
LPVOID lpParam //指向窗口的创建数据
);
例程:
include<windows.h>
#include<stdio.h>
LRESULTCALLBACKWinDouProc(
HWNDhwnd,//handletowindow
UINTuMsg,//messageidentifier
WPARAMwParam,//firstmessageparameter
LPARAMlParam//secondmessageparameter
);
classCWnd
{
public:
CWnd()
{
m_hWnd=NULL;
}
BOOLCreateEx(
DWORDdwExStyle,//extendedwindowstyle
LPCTSTRlpClassName,//pointertoregisteredclassname
LPCTSTRlpWindowName,//pointertowindowname
DWORDdwStyle,//windowstyle
intx,//horizontalpositionofwindow
inty,//verticalpositionofwindow
intnWidth,//windowwidth
intnHeight,//windowheight
HWNDhWndParent,//handletoparentorownerwindow
HMENUhMenu,//handletomenuorchild-windowidentifier
HANDLEhInstance,//handletoapplicationinstance
LPVOIDlpParam//pointertowindow-creationdata
);
BOOLShowWindow(intnCmdShow);
BOOLUpdateWindow();
public:
HWNDm_hWnd;
};
BOOLCWnd::CreateEx(
DWORDdwExStyle,//extendedwindowstyle
LPCTSTRlpClassName,//pointertoregisteredclassname
LPCTSTRlpWindowName,//pointertowindowname
DWORDdwStyle,//windowstyle
intx,//horizontalpositionofwindow
inty,//verticalpositionofwindow
intnWidth,//windowwidth
intnHeight,//windowheight
HWNDhWndParent,//handletoparentorownerwindow
HMENUhMenu,//handletomenuorchild-windowidentifier
HANDLEhInstance,//handletoapplicationinstance
LPVOIDlpParam//pointertowindow-creationdata
)
{
m_hWnd=::CreateWindowEx(dwExStyle,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,(HINSTANCE)hInstance,lpParam);
if(m_hWnd!=NULL)
returnTRUE;
else
returnFALSE;
}
BOOLCWnd::ShowWindow(intnCmdShow)
{
return::ShowWindow(m_hWnd,nCmdShow);
}
BOOLCWnd::UpdateWindow()
{
return::UpdateWindow(m_hWnd);
}
intWINAPIWinMain(
HINSTANCEhInstance,//handletocurrentinstance
HINSTANCEhPrevInstance,//handletopreviousinstance
LPSTRlpCmdLine,//pointertocommandline
intnCmdShow//showstateofwindow
)
{
WNDCLASSwndclass;//先设计窗口类
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH);
wndclass.hCursor=LoadCursor(NULL,IDC_HELP);
wndclass.hIcon=LoadIcon(NULL,IDI_WARNING);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=WinDouProc;
wndclass.lpszClassName="Magic_Maggie";
wndclass.lpszMenuName=0;
wndclass.style=CS_VREDRAW|CS_HREDRAW;
//某一个变量原油几个变量去掉一个特征,可以用取反(~)后再进行与(&)
//例如:style上去掉CS_NOCLOSE,可以style&~CS_NOCLOSE;
RegisterClass(&wndclass);///注意先建立再注册昂
CWndwnd;
wnd.CreateEx(NULL,"Magic_Maggie","DouDou",WS_OVERLAPPEDWINDOW,0,0,800,600,NULL,NULL,hInstance,NULL);
wnd.ShowWindow(SW_SHOWNORMAL);
wnd.UpdateWindow();
MSGmsg;//消息循环
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);//触发WinDouProc
}
return0;
}
LRESULTCALLBACKWinDouProc(
HWNDhwnd,//handletowindow
UINTuMsg,//messageidentifier
WPARAMwParam,//firstmessageparameter
LPARAMlParam//secondmessageparameter
)
{
switch(uMsg)
{
caseWM_LBUTTONDOWN:
MessageBox(hwnd,"您按下了鼠标左键昂","豆豆的程序",MB_OK);
HDChdc;
hdc=GetDC(hwnd);
//.text.
TextOut(hdc,0,0,"感谢您对豆豆程序的支持昂",strlen("感谢您对豆豆程序的支持昂"));
ReleaseDC(hwnd,hdc);
break;
caseWM_CHAR:
charszChar[20];
sprintf(szChar,"Charis%d",wParam);
MessageBox(hwnd,szChar,"豆豆的程序",MB_OK);
break;
caseWM_PAINT:
PAINTSTRUCTps;
HDChDc;
hDc=BeginPaint(hwnd,&ps);
TextOut(hDc,0,0,"这个是重绘滴哦",strlen("这个是重绘滴哦"));
EndPaint(hwnd,&ps);
break;
caseWM_CLOSE://这个case与下边的destroy这个case不要弄错了,否则窗口不出现,但任务管理器中运行
if(IDYES==MessageBox(hwnd,"您真的要退出么?","豆豆的程序",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
caseWM_DESTROY:
PostQuitMessage(0);
//////////////////////////////////////////?????????????????????
break;
default:
returnDefWindowProc(hwnd,uMsg,wParam,lParam);//别忘记了return
}
return0;
}
② windows窗体应用程序和MFC有什么区别
MFC才可以做到真正做到可视化(visual)。VC6.0貌似没有窗口程序的吧。Visual
Studio才有的。不过是用了回.net技术,应答该是VC++.NET。
VC6.0有的是Win32应用程序,这个就是基本用代码写的Win32程序,灵活,可以清晰的了解Windows程序的运行方式。
③ VC++ windows窗体程序
vc下面的picture控件是吧?
它的属性里面有选项,在里面选择类型为BITMAP,再选择位图的专id就好了
如果用代码实属现的话,
你看看这儿吧
http://apps.hi..com/share/detail/32232749
④ visual studio 里的VC++中有两个可以创建的项目:MFC 应用程序与WINDOWS Forms即窗体应用程序 之间的不同
你说的没错,MFC是不基于.net的,而WinForm是基于.net的。
用MFC开发的程序经过简单的设置(设版置为静态连权接),其release版本就可以脱离开发环境成为一个绿色软件。而WinForm则不然,它的release版本的软件需要开发时设置的对应版本及以上版本的.net运行库的支持才能运行。当然也可以用一些软件构建一个虚拟的.net环境,以前的飞信就是这么做的,可以利用飞信的虚拟环境来将你的WinForm程序(release版本)脱离Windows的.net来运行,但这样软件包会变的非常大(约大20M左右)。当然,vista和win7都已经在系统安装时集成了.net,所以xp以上的系统不必考虑.net的支持。
其实MFC是基于visual C++语言的开发,而WinForm是基于托管C++的开发,也就是说WinForm程序开发可以简单认为是通常所说的CLI或者是C++/CLR。
WinForm用C#语言来开发比较方便。
⑤ 怎样用VC++开发多文档多窗体应用程序
就是建一个工程抄:
打开VC++,执行“文件”——“新建”命令,单击“Win32 Console Application”选项后,在“工程”文本框中输入“prog10_1”,在“位置”中选择“c:\programming”后,“位置”文本框中即显示“c:\programming\prog10_1”.选择“创建新工作区”选项,单击“确定”按钮后,在选择“An empty project”选项,即建立了一个工程。
添加源程序:
执行“工程”——'添加工程"命令,在file中选择prog10_1.cpp,并以同样方式选择prog10_1_2.cpp和prog10_1_3.cpp后,就将三个源文件全部添加到了工程中。在左侧窗口中单击"File view"选项卡,再单击"Source File",此时双击某个源文件名,在右侧窗口中即显示相应的源程序。
⑥ 怎样用VC++开发多文档多窗体应用程序
文章摘要: 多窗体指应用程序中有多个窗口界面,这些窗口分别显示在专屏幕上,它们之属间没有绝对的从属关系。在多窗体中每个单独的窗体都依照应用功能分类进行设计,这样可以使整个程序的功能更加协调,相互之间的逻辑关系更具体。在用Delphi、VB开发数据库应用时,常常使用这种方法,那么在VC中如何实现呢?其实在VC中不仅能创建多窗体程序,而且也可建立多窗体多菜单的应用程序。 (共2页)
⑦ VC++中有了MFC应用程序为什么还有windows窗体应用程序(区别)
winform 是基复于托管c++的,编程效率高,开制发程序简单方便,但需要.net支持。且计算机开机后首次运行需要.net支持的程序时需要加载.net运行库,启动速度较慢。
MFC在进行设置后就可以生成只需要windows xp以下系统自带的动态库就可以运行了,相当于绿色软件。
⑧ 怎样用vc++编写一个窗口应用程序
1、首先设计好界面。

⑨ VC++中windows窗口程序和MFC应用程序有什么区别
这是两种不同的编程方法。
编 Windows 窗口程序,消息的处理等很多事情得你自己考虑。但回是你很清楚程序的走向。
MFC 编程答是微软将 windows 的 API 进行了一定程度的封装。编程时,很多事情不用你自己去考虑。调用 MFC 的函数就可以了。但是想深入了解 MFC,还是很难的。
如果侧重快速开发应用,那就 MFC 吧。如果想深入了解 windows 的机制,还是 windows 窗口程序。
⑩ 编写VS2010中的VC++下面的windows窗体应用程序,需要看些什么资料
我又来了。。。 你是指VS2010中VC++的Windows窗体应用程序吗? 如果是,那: 在void InitializeComponent(void)函数中添加如专下语句(或者直接在窗体事件属里选Paint事件): this->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, ...