Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

如何在 MFC 中做出一個 floating menu!?

0 views
Skip to first unread message

sw

unread,
Jun 20, 1996, 3:00:00 AM6/20/96
to


常常我們會看到有一些 application 只要 user按下
mouse button, 這時後就會有一個 menu出現在 mouse cursor
附近。 這樣的Menu 是如何做成的呢?


--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw>

嵐雲

unread,
Jun 20, 1996, 3:00:00 AM6/20/96
to

四眼的王蟲 (dy...@ms1.hinet.net) 提到:
: suawe...@cis.nctu.edu.tw (sw) wrote:
: > 常常我們會看到有一些 application 只要 user按下

: > mouse button, 這時後就會有一個 menu出現在 mouse cursor
: > 附近。 這樣的Menu 是如何做成的呢?
: void CMyView::OnRButtonDown(UINT /*nFlags*/, CPoint point)
: {
: CMenu popup;
: popup.LoadMenu(IDR_RIGHTBUTTON);
: Menu* pMenu = popup.GetSubMenu(0);
: pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);
: }

若是用 VC/MFC 4.0,
也可以用 Insert/Component Microsoft 的 Pop-up Menu,
來幫你產生適當的程式碼.

--
歡迎至 http://gais.cs.ccu.edu.tw/ 使用 GAIS 查詢台灣學術網路資源(BBS,WWW,FTP)
EightCloud(嵐雲)
在 7月16日,將暫時告別BBS.....

四眼的王蟲

unread,
Jun 20, 1996, 3:00:00 AM6/20/96
to

suawe...@cis.nctu.edu.tw (sw) wrote:

>
>
> 常常我們會看到有一些 application 只要 user按下
> mouse button, 這時後就會有一個 menu出現在 mouse cursor
> 附近。 這樣的Menu 是如何做成的呢?

void CMyView::OnRButtonDown(UINT /*nFlags*/, CPoint point)
{
CMenu popup;
popup.LoadMenu(IDR_RIGHTBUTTON);
Menu* pMenu = popup.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);
}

四眼的王蟲
--
生命是在黑暗中閃爍的光

sw

unread,
Jun 21, 1996, 3:00:00 AM6/21/96
to

==> 在 EightCloud.bbs@firebird (嵐雲) 的文章中提到:

> 四眼的王蟲 (dy...@ms1.hinet.net) 提到:
> : suawe...@cis.nctu.edu.tw (sw) wrote:
> : void CMyView::OnRButtonDown(UINT /*nFlags*/, CPoint point)

> : {
> : CMenu popup;
> : popup.LoadMenu(IDR_RIGHTBUTTON);
> : Menu* pMenu = popup.GetSubMenu(0);
> : pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);
> : }
> 若是用 VC/MFC 4.0,
> 也可以用 Insert/Component Microsoft 的 Pop-up Menu,
> 來幫你產生適當的程式碼.
謝謝,我用的是 VC++ 1.51,
所以用 四眼的王蟲 所說的方法就可以了。 :)

sw

unread,
Jun 21, 1996, 3:00:00 AM6/21/96
to

==> 在 dy...@ms1.hinet.net (四眼的王蟲) 的文章中提到:

> suawe...@cis.nctu.edu.tw (sw) wrote:
> > 常常我們會看到有一些 application 只要 user按下
> > mouse button, 這時後就會有一個 menu出現在 mouse cursor
> > 附近。 這樣的Menu 是如何做成的呢?
> void CMyView::OnRButtonDown(UINT /*nFlags*/, CPoint point)
> {
> CMenu popup;
> popup.LoadMenu(IDR_RIGHTBUTTON);
> Menu* pMenu = popup.GetSubMenu(0);
> pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);
> }

謝謝你的回信!!
我試了一下,發現在 TrackPopupMenu()
中的 point.x point.y 要先用
ClientToScreen() 轉換成 Screen 的座標,
這樣它( floating Menu ) 才會在你的游標
附近出現。 :)
現在我又有一個問題想請問你,
如果我自行產生一個 FrameWnd,
那我要在那一個函式或是資源中設定它的 Tittle 呢?

0 new messages