gpt4 book ai didi

c++ - 从函数访问类

转载 作者:行者123 更新时间:2023-11-28 03:30:02 25 4
gpt4 key购买 nike

除了在类内部声明一个静态方法以便从类外部调用它之外,还有其他方法吗?

这是我的代码(见标记为评论的问题)

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

_stdcall BOOL EnumWindowsProc(HWND hw,LPARAM lp)
{
char title[255];

memset(title,0,255);
GetWindowTextA(hw,title,255);

qDebug() << title << endl;

// How can I access class MainWindow from this function ?

return true;
}

void MainWindow::on_pushButton_clicked()
{
EnumWindows(&EnumWindowsProc,0);
}

最佳答案

在 Windows 世界中执行此操作的典型方法是将指针传递给 Enum 函数,如下所示:

void MainWindow::on_pushButton_clicked()
{
EnumWindows(&EnumWindowsProc,reinterpret_cast<void*>(this));
}

...然后在回调中将其投回:

_stdcall BOOL EnumWindowsProc(HWND hw,LPARAM lp)
{
char title[255];

memset(title,0,255);
GetWindowTextA(hw,title,255);

qDebug() << title << endl;

// How can I access class MainWindow from this function ?

MainWindow* that = reinterpret_cast<MainWindow*>(lp);


return true;
}

关于c++ - 从函数访问类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com