vs 中mfc的入口是什么?

逆水寒_ 2014-04-22 09:23:17
#include <afxwin.h>

class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};

class CMyFarme:public CFrameWnd
{
public:
CMyFarme();

protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};


#include "ex01.h"

CMyApp theapp;

BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMyFarme();

m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();

return true;
}

BEGIN_MESSAGE_MAP(CMyFarme, CFrameWnd)
ON_WM_LBUTTONDOWN()
ON_WM_PAINT()
END_MESSAGE_MAP()

CMyFarme::CMyFarme()
{
Create(NULL, "MyApp Application");
}

void CMyFarme:: OnLButtonDown(UINT nFlags, CPoint point)
{
TRACE("Entering CMyFrame::OnLButtonDown - %1x, %d, %d\n", (long)nFlags, point.x, point.y);
}

void CMyFarme::OnPaint()
{
CPaintDC dc(this);
dc.TextOut(0, 0, "Hello World!");
}



我想知道怎么使用这些类呢??
入口函数写什么 main 吗?
...全文
649 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
洗洗睡去 2014-04-24
  • 打赏
  • 举报
回复
深入迁出mfc里 老侯专门为这个入口写了一个简单的“mfc”
lx624909677 2014-04-23
  • 打赏
  • 举报
回复
CWinApp是入口,你可以先学习下Win32,然后回过头来看这段代码
Eleven 2014-04-23
  • 打赏
  • 举报
回复
还不是WinMain/wWinMain,不设置任何断点,按F10就看到了
lis2012 2014-04-23
  • 打赏
  • 举报
回复
深入浅出mfc
sichuanwww 2014-04-23
  • 打赏
  • 举报
回复
深入浅出MFC
不败的拿破仑 2014-04-23
  • 打赏
  • 举报
回复
MFC是WinMain,是一个循环,在不断接收消息,然后分派消息到各个窗口类。 所以从main开始的写软件思路是错误的。 你可以写代码的地方很多,如create消息,initdialog消息等,都可以,不同需求 写的地方不同
「已注销」 2014-04-23
  • 打赏
  • 举报
回复

//代码能运行
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WinSunProc(
							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,          // command line
				   int nCmdShow              // show state
				   )
{
	WNDCLASS wndcls;
	wndcls.cbClsExtra=0;
	wndcls.cbWndExtra=0;
	wndcls.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
	wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
	wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	wndcls.hInstance=hInstance;
	wndcls.lpfnWndProc=WinSunProc;
	wndcls.lpszClassName="Weixin2003";
	wndcls.lpszMenuName=NULL;
	wndcls.style=CS_HREDRAW ;
	RegisterClass(&wndcls);
	
	HWND hwnd;
	hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中\
		心",WS_OVERLAPPEDWINDOW &~WS_MAXIMIZEBOX   ,
		0,0,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 0;
}

LRESULT CALLBACK WinSunProc(
							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[20];
		sprintf(szChar,"char is %d",wParam);
		MessageBox(hwnd,szChar,"weixin",0);
		break;
	case WM_LBUTTONDOWN:
		MessageBox(hwnd,"mouse clicked","weixin",0);
		HDC hdc;
		hdc=GetDC(hwnd);
		TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));
		ReleaseDC(hwnd,hdc);
		break;
	case WM_PAINT:
		HDC hDC;
		PAINTSTRUCT ps;
		hDC=BeginPaint(hwnd,&ps);
		TextOut(hDC,0,0,"维新培训",strlen("维新培训"));
		EndPaint(hwnd,&ps);
		break;
	case WM_CLOSE:
		if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
		{
			DestroyWindow(hwnd);
		}
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hwnd,uMsg,wParam,lParam);
	}
	return 0;
}


Simple_Z 2014-04-23
  • 打赏
  • 举报
回复
我是来看看学习的。。。。
rxguoblp 2014-04-23
  • 打赏
  • 举报
回复
如果纯粹从使用的角度来讲,不用理会CMyApp这个类(不要动它),对于对话窗程序:从CXXXDlg::OnInitialDlg()函数入口;对于单文档程序:从CXXXView::OnInitialUpdate()函数入口。
caewow 2014-04-23
  • 打赏
  • 举报
回复
蜗牛的信仰 2014-04-23
  • 打赏
  • 举报
回复
MFC封装起来了, 表面上你看不到
副组长 2014-04-22
  • 打赏
  • 举报
回复
InitInstance()

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧