一个简单的例子,创建一个新的Win32项目。
步骤:
- 创建一个空项目。
- 要使其成为MFC项目,请右键单击该项目,然后选择“属性”。
- 在左侧部分,单击配置属性→常规。
- 在“项目默认值”部分中选择“在共享的DLL中使用MFC”选项,然后单击“确定”。
Example.cpp文件的完整实现
#include <afxwin.h>
class CMyFrame : public CFrameWnd {
public:
CMyFrame() {
Create(NULL, _T("MFC Application Tutorial"));
}
};
class CExample : public CWinApp {
BOOL InitInstance() {
CMyFrame *Frame = new CMyFrame();
m_pMainWnd = Frame;
Frame->ShowWindow(SW_NORMAL);
Frame->UpdateWindow();
return TRUE;
}
};
CExample theApp;
编译中遇到的问题:
LNK2019 无法解析的外部符号 _main,函数 “int __cdecl invoke_main(void)“ (? invoke_main@@YAHXZ) 中引用了该符号
当我们在vs2019中建立了一个空项目,却又准备开始从头到尾简单编写一个Window桌面程序的时候。我们就会发现程序执行以后一直报以下错误:
错误的修改方法:不要听信网上的那个,让改DLL。我们必须清楚DLL是不可以执行的。只有exe文件才能够执行。
- 如果这两处都改完,还是有问题,可以紧接着试一下以下步骤
- 点击最上方菜单栏—>点击清理解决方案—>点击重新生成解决方案即可。
- 如果可以看到下面编译成功了,此时我们就可以改为Release去执行了。
Windows位置
要查看显示器上显示的内容,计算机将使用与笛卡尔坐标系相似的坐标系,但原点位于屏幕的左上角。使用该坐标系,可以将任何点与水平和垂直轴的屏幕左上角的距离进行定位。
Win32
库提供了一个名为POINT
定义如下结构-
typedef struct tagPOINT {
LONG x;
LONG y;
} POINT;
- “x”成员变量是从屏幕左边界到点的距离。
- “y”变量表示从屏幕顶部边界到点的距离。
- 除了Win32的POINT结构外,Microsoft Foundation Class(MFC)库提供了CPoint类。
- 这提供了与POINT结构相同的功能。作为C ++类,它添加了更多的功能来定位一个点。它提供两个构造函数。
Windows尺寸
Win32
库使用SIZE结构定义如下
typedef struct tagSIZE {
int cx;
int cy;
} SIZE;
当窗口显示时,可以通过其屏幕上显示器边框的位置来识别屏幕。窗口也可以通过其宽度和高度来识别。这些特性由Create()方法的rect参数指定或控制。此参数是可以通过Win32 RECT结构创建的矩形。
typedef struct _RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT;
除了Win32的RECT
结构之外,MFC还提供了具有以下构造函数的CRect类:
CRect();
CRect(int l, int t, int r, int b);
CRect(const RECT& srcRect);
CRect(LPCRECT lpSrcRect);
CRect(POINT point, SIZE size);
CRect(POINT topLeft, POINT bottomRight);
例子:
class CMyFrame : public CFrameWnd {
public:
CMyFrame() {
Create(NULL, _T("MFC Application Tutorial"), WS_SYSMENU, CRect(90, 120,
550, 480));
}
};