タスクトレイからダイアログの表示について

[戻る]
プリントーク 2005/03/26(土) 21:27:52
環境:VC6(MFC)

初心者です。

起動時にタスクトレイのみ表示し、
その後タスクトレイをクリック後、
ダイアログボックスを表示したいと思っています。

現在、ダイアログボックスを表示しないで
タスクトレイにアイコンを表示する所まではできたのですが、
タスクトレイのアイコンをクリックしても
ダイアログボックスが表示されません。

どの様にすれば良いのでしょうか?
ご教授お願いします。

以下ソースです。

/******************************************************************************
/
// testDlg.h
/******************************************************************************
/
class CTestDlg : public CDialog
{
public:
    CTestDlg(CWnd* pParent = NULL);    // 標準のコンストラクタ
protected:
    HICON m_hIcon;
}

/******************************************************************************
/
// testDlg.cpp
/******************************************************************************
/
BOOL CTestDlg::OnInitDialog()
{
    m_nIcon.cbSize = sizeof(NOTIFYICONDATA) ;
    m_nIcon.uID = 1 ;
    m_nIcon.hWnd = m_hWnd ;
    m_nIcon.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP ;
    m_nIcon.hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
    m_nIcon.uCallbackMessage = WM_TRYCLK ;

    ::Shell_NotifyIcon(NIM_ADD, &m_nIcon);

    SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_HIDEWINDOW);

    return TRUE;  // TRUE を返すとコントロールに設定したフォーカスは失われ
ません。
}


/******************************************************************************
/
// testDlg.cpp
/******************************************************************************
/
LRESULT CTestDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
    switch(message) {
    case WM_TRYCLK:
        switch(lParam) {
        case WM_LBUTTONDOWN:

            /*
            ここで、ダイアログを表示したい
            /*
            SetWindowPos(AfxGetMainWnd(), 0, 0, 0, 0, 
SWP_SHOWWINDOW);
            
            break;
        }
        break;
    }
}

/******************************************************************************
/
// test.rc
/******************************************************************************
/
EXSTYLE WS_EX_TOOLWINDOW

ムース 2005/03/27(日) 04:51:19
SetWindowPosでウィンドウサイズが0になってるのでは・・・!?

wood 2005/03/27(日) 19:52:57
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_TaskTray.html
ここ参考にしてみたらどうです

古いスレッドには追加発言できません。