Quiet
  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我

bajiu

  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我
Quiet主题
  • CPP

MFC之项目搭建

bajiu
青年大学习

2022-05-07 11:23:00

一个简单的例子,创建一个新的Win32项目。

步骤:

  1. 创建一个空项目。
  2. 要使其成为MFC项目,请右键单击该项目,然后选择“属性”。
  3. 在左侧部分,单击配置属性→常规。
  4. 在“项目默认值”部分中选择“在共享的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文件才能够执行。

MFC项目搭建_1

MFC项目搭建_2

MFC项目搭建_3

MFC项目搭建_4

  1. 如果这两处都改完,还是有问题,可以紧接着试一下以下步骤
  2. 点击最上方菜单栏—>点击清理解决方案—>点击重新生成解决方案即可。
  3. 如果可以看到下面编译成功了,此时我们就可以改为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));
      }
};
上一篇

khash基础教程

下一篇

GLSL ES语言的内置函数

©2024 By bajiu.