1
我是FLTK和C++的新手。我需要一些關於如何讓事件發揮作用的幫助。在其他語言中,您創建一個按鈕並定義一個函數,當用戶點擊該按鈕時,該函數將處理來自按鈕1和按鈕2的不同功能的事件。就像將一個事件監聽器添加到button1並將其映射到button1_click()。FLTK事件映射/多線程
這是一個多線程環境中的一些代碼。我想知道如何從button1和button2聽取點擊並正確處理它們。
而且,採用這種設計,我打算在循環中有在GUI上一個單獨的線程更新數據,每200毫秒。如果我在此循環中調用鎖定和解鎖,是否有可能會引發異常?
謝謝!
#pragma once
#include <Fl.H>
#include <Fl_Window.H>
#include <Fl_Button.H>
#include <Windows.h>
class MGui
{
public:
Fl_Window* window;
Fl_Button* button1;
Fl_Button* button2;
static MGui &i()
{
static MGui sMGui;
return sMGui;
}
static void init()
{
i();
DWORD dwThreadId;
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) run, (LPVOID) 0, NULL, &dwThreadId);
}
static DWORD_PTR WINAPI run(void *theParam)
{
i().window = new Fl_Window(100, 100, 340, 180, "Window");
i().button1 = new Fl_Button(10, 10, 50, 24, "Button1");
i().button2 = new Fl_Button(10, 44, 50, 24, "Button2");
i().window->end();
i().window->show();
Fl::run();
return 0;
}
};