それは、オートデスクのRevit Architectureで行われているように私は、ポップアップ画像のプレビューウィンドウを作成しようとしている:ポップアップイメージの作成方法は? wxWidgetsの
ポップアップ画像の動作は次のとおりです。
- マウスは500のために停止した場合マウスカーソルの近くにフルサイズのポップアップイメージが表示されます。
- ポップアップイメージはモーダルダイアログではないため、メインウィンドウ(wxDialog)のコントロールは引き続き有効です。
- ポップアップウィンドウがマウスの動きで消えます。
私はそれを試みましたが、失敗しました。 最初にwxStaticBitmap
をwxDialog
に置き、ShowModal()
を使用して、このフルサイズの画像を表示します。それは素晴らしいですが、それはモーダルなので、メインウィンドウは無効になります。 私はこのダイアログをモーダルではないようにしようとしましたが、それをやろうとするとメインウィンドウが上がり(メインウィンドウはモーダルです)、イメージは消えます。
upd。 は今、私のコード:
class PictureFrame: public wxPopupTransientWindow
{
wxStaticBitmap *m_picture;
public:
PictureFrame(wxWindow *parent);
~PictureFrame();
};
パネルのコードの構造は、このようなものです:
class MaterialsPane: public wxPanel
{
PictureFrame* m_popup;
wxTimer* m_timer;
public:
MaterialsPane(wxWindow* parent);
~MaterialsPane();
void OnTimer(wxTimerEvent& event);
void OnMouseMove(wxMouseEvent& event);
....
DECLARE_EVENT_TABLE()
};
パネルはメインのモーダルダイアログに配置されています
class MaterialsFrame: public wxDialog {
MaterialsPane* m_materialsPane;
public:
MaterialsFrame(wxWindow* parent, wxWindowID id = wxID_ANY);
~MaterialsFrame();
};
が、それは完全ではないが助けました。画像はマウスカーソルの下ではなくその近くに表示されるため(私の質問の画像のように)、ポップアップウィンドウはマウスの動きを捕らえることができません。私はメインダイアログでマウスの動きをキャッチしようとしましたが、ポップアップウィンドウでフォーカスがとられたので失敗しました。
私の目標は、マウスの動きの後にポップアップを閉じることです。
私はこの試み それは助けたが完全ではなかった。画像はマウスカーソルの下ではなくその近くに表示されるため(私の質問の画像のように)、ポップアップウィンドウはマウスの動きを捕らえることができません。私はメインダイアログでマウスの動きをキャッチしようとしましたが、ポップアップウィンドウでフォーカスがとられたので失敗しました。 私の目標は、マウスの動きの後にポップアップを閉じることです。 – Pillar
新しい質問があるようです。質問を編集するか、新しい質問をしてください。失敗したコードを含めることを忘れないでください。あなたの最初の質問に対する私の答えが役に立ったら、それを投票してください、あるいはそれを受け入れてください。 – ravenspoint
トピックが更新されましたが、まだ動作しません – Pillar