使用类设置 win32 应用程序的更好方法
Better way to set up win32 application using classes?
这是我的第一个项目,我正在做一个类。以前我把所有东西都放在同一个文件下,但现在我正在制作一个需要更多功能的应用程序,它在文件中变得有点拥挤。所以我正在制作一个计算器课程。当我运行程序时,屏幕上的测试按钮一直闪烁。(我的猜测是因为我一直打电话给计算器。主消息循环中的 Initialize() 函数。我将如何解决这个问题?
视窗.cpp:
// Create calculator
Calculator basicCalc(hwnd);
// Main message loop
MSG msg;
ZeroMemory(&msg, sizof(msg));
while(msg.message != WM_QUIT)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
basicCalc.Initialize();
}
计算器.h:
#pragma once
#include <Windows.h>
#include <wchar.h>
#include <math.h>
#include "Resource.h"
class Calculator
{
public:
Calculator(HWND hwnd);
~Calculator();
void Initialize();
private:
CreateButtons(HWND hwnd);
};
计算器.cpp
void Calculator::Initialize()
{
CreateButtons(hwnd);
}
void Calculator::CreateButtons(HWND hwnd)
{
HWND button = CreateWindowEx(0, L"BUTTON", L"L", WS_CHILD | WS_VISIBLE, 30, 30, 50, 50, hwnd, (HMENU)IDC_BACK, NULL, NULL);
ShowWindow(button, SW_SHOW);
}
在进入循环之前调用Initialize()
一次:
// Create calculator
Calculator basicCalc(hwnd);
basicCalc.Initialize();
// Main message loop
MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
相关文章:
- 初始化具有非默认构造函数的std::数组项的更好方法
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 编写按初始值循环的循环的更好方法是什么
- 用 c++ 为游戏制作"bullet"的更好方法?
- 在CMakeLists中包含目录的更好方法.txt
- 将QDomDocument数据用作文本的更好方法
- C++ - 创建具有相同字符的特定大小的以 null 结尾的 c 样式字符串的更好方法
- 在 sqlite3 中批量插入的更好方法C++
- 设计许多单例代码结构的更好方法
- 使用继承的类模板避免公共成员不可见和源代码膨胀/重复的更好方法
- 在初始化列表中初始化数组的更好方法
- 将对象从一个 std::d eque 移动到另一个的更好方法
- 请告诉我在巴泽尔拥有多平台工作空间的更好方法
- 构造具有大量数据的对象的更好方法(C++)
- 从2D矢量中找出最小尺寸的向量元素的更好方法
- 在C++中创建不可变对象的更好方法
- 在构造函数中组织初始值设定项列表的更好方法
- std::copy with return values - 防止"expression: string iterators incompatible"的更好方法?
- 删除数组成员的更好方法是什么?
- 在C 中操作数据的更好方法是什么