FLTKとC++は初めてです。イベントを機能させる方法について助けが必要です。他の言語では、ボタンを作成し、ユーザーがボタンをクリックしたときに異なる関数でbutton1とbutton2からのイベントを処理する関数を定義します。button1にイベントリスナーを追加し、それをbutton1_click()にマッピングするようなものです。
これは、マルチスレッド環境からのコードです。button1とbutton2からのクリックをリッスンし、正しく処理するにはどうすればよいのでしょうか。
また、この設計では、ループ内で200ミリ秒ごとにGUIで個別のスレッド更新データを使用することを計画しています。このループでロックとロック解除を呼び出すと、例外がスローされる可能性はありますか?
ありがとう!!
#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;
}
};