#include <afxwin.h>
//喊中 说明应用程序类
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)
} 这样就出来了。
http://www.xici.net/b304234/d17269213.htm 你可以看这篇文章,非常好的入门文章
我们在使用Visual Studio 2015创建桌面应用的时候,最经常遇到的就是Winform和MFC了,那么如何在Visual Studio 2015中创建MFC窗体应用呢?下面我给大家分享一下。
工具/材料Visual Studio 2015
01首先我们滚姿闷大弯打开Visual Studio 2015软件,点击顶部的文件菜单,然后选择新建下册李面的项目选项,如下图所示
02接下来在d出的新建项目界面中我们定位到Visual C++下面的MFC,然后选择右侧的MFC应用程序,如下图所示
03然后会打开MFC应用程序向导界面,我们选择应用程序类型为单个文档,如下图所示
04接着在复合文档支持界面中将复合文档支持类型选择为无,如下图所示
05接下来会进入文档模板属性界面,这里需要给文件扩展名起一个名字,大家根据自己的情况随便起即可,如下图所示
06然后就会进入数据库支持设置界面,由于这里并没有使用数据库,所以勾选无,如下图所示
07接下来就进入到用户界面功能选择页了,我们需要根据自己的实际情况选择使用哪些功能,如下图所示
08最后运行MFC应用程序,我们就会看到如下图所示的MFC窗体应用了,到这里在Visual Studio中创建MFC窗体应用程序就创建完了
全屏显示是一些应用软件程序必不可少的功能。比如在用VC++编辑工程源文件或编辑对话框等棚明并资源时,选择菜单“ViewFull Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态。在VC++6.0中我们用AppWizard按默认方式生成单文档界面的应用程序框架。下面将先讨论点击菜单项“ViewFull Screen”实现全屏显示的方法,再讲述按“Esc”键后如何退出全屏显示状态。
1) 在CMainFrame类中,增加如下三个成员变量。
Class CMainFrame : public CFrameWnd
{ private: //自己添加的三个成员变量
WINDOWPLACEMENT m_OldWndPlacement//用来保存原窗口位置
BOOL m_bFullScreen//全屏显示标志
Crect m_FullScreenRect//表示全屏显示时的窗口位置
protected: CMainFrame()
DECLARE_DYNCREATE(CMainFrame)}
2)在资源编辑器中编辑菜单IDR_MAINFRAME。在“View”菜单栏下添加菜链迹单项“Full Screen”。在其属性框中,ID设置为ID_FULL_SCREEN,Caption为“Full Screen”。还可以在工具栏中添加新的工具图标,并使之与菜单项“Full Screen”相关联,即将其ID值也设置为ID_FULL_SCREEN。
3)设计全屏显示处理函数,在CMainFrame类增加上述菜单项ID_FULL_SCREEN消息的响应函数。响应函数如下:
void CMainFrame::OnFullScreen()
{ GetWindowPlacement(&m_OldWndPlacement)
Crect WindowRect
GetWindowRect(&WindowRect)
Crect ClientRect
RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &ClientRect)
ClientToScreen(&ClientRect)
// 获取屏幕的分辨率
int nFullWidth=GetSystemMetrics(SM_CXSCREEN)
int nFullHeight=GetSystemMetrics(SM_CYSCREEN)
//将除控制条外的客户槐衡区全屏显示到从(0,0)到(nFullWidth, nFullHeight)区域, //将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口和除控制条之外的 客户区位置间的差值, 就得到全屏显示的窗口位置
m_FullScreenRect.left = WindowRect.left-ClientRect.left
m_FullScreenRect.top = WindowRect.top-ClientRect.top
m_FullScreenRect.right = WindowRect.right-ClientRect.right+nFullWidth
m_FullScreenRect.bottom = WindowRect.bottom-ClientRect.bottom+nFullHeight
m_bFullScreen = TRUE// 设置全屏显示标志为 TRUE
// 进入全屏显示状态
WINDOWPLACEMENT wndpl
wndpl.length=sizeof(WINDOWPLACEMENT)
wndpl.flags=0
wndpl.showCmd=SW_SHOWNORMAL
wndpl.rcNormalPosition=m_FullScreenRect
SetWindowPlacement(&wndpl)}
4)重载CMainFrame类的OnGetMinMaxInfo函数,在全屏显示时提供全屏显示的位置信息。
Void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{ if(m_bFullScreen)
{ lpMMI->ptMaxSize.x=m_FullScreenRect.Width()
lpMMI->ptMaxSize.y=m_FullScreenRect.Height()
lpMMI->ptMaxPosition.x=m_FullScreenRect.Width()
lpMMI->ptMaxPosition.y=m_FullScreenRect.Height()
// 最大的Track尺寸也要改变
lpMMI->ptMaxTrackSize.x=m_FullScreenRect.Width()
lpMMI->ptMaxTrackSize.y=m_FullScreenRect.Height()
} CFrameWnd::OnGetMinMaxInfo(lpMMI)
}完成上面的编程后,可以联编执行FullScreen.exe,选择菜单“ViewFull Screen”或点击与之关联的工具栏按钮即可进入全屏显示状态。但现在还需要增加用户退出全屏显示状态的 *** 作接口,下面讲述如何编程实现按“Esc”键退出全屏显示状态。
1)在ClassView中选中CMainFrame并单击鼠标右键,选择“Add Member Function…”,添加public类型的成员函数EndFullScreen,该函数将完成退出全屏显示的 *** 作。
Void CMainFrame::EndFullScreen()
{ if(m_bFullScreen)
{ //退出全屏显示, 恢复原窗口显示
ShowWindow(SW_HIDE)
SetWindowPlacement(&m_OldWndPlacement)}}
2)函数EndFullScreen可以退出全屏显示状态,问题是如何在“Esc”键被按下之后调用执行此函数。由于视图类可以处理键盘输入的有关消息(如WM_KEYDOWN表示用户按下了某一个键),我们将在视图类CFullScreenView中添加处理按键消息WM_KEYDOWN的响应函数OnKeyDown。判断如果按的键为“Esc”键,则调用CMainFrame类的函数EndFullScreen,便可退出全屏显示状态。
Void CFullScreenView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{ if(nChar==VK_ESCAPE) // 如果按的键为Esc键
{// 获取主框架窗口的指针
CMainFrame *pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd
// 调用主窗口类的自定义函数 EndFullScreen ,便可退出全屏显示状态
pFrame->EndFullScreen()}
Cview::OnKeyDown(nChar, nRepCnt, nFlags)}
这样我们就实现了比较专业的全屏显示的功能,相信肯定会令你设计的软件程序增色不少。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)