[問題] Win32怎樣在Edit上按右鍵跳出popupmenu?
開發平台(Platform): Win32
我只是一個剛入職場一個禮拜的小菜菜...
最近主管丟了一本超厚的WIN32的書叫我寫個輔助工具出來,
恩...摸了三天感覺好艱深呀...=.=
好吧,廢話講完了,
我現在遇到一個問題,
我想要在一個Edit控制項上面,
按右鍵時可以跳出自己自訂的PopUpMenu,
Menu我已經寫出來了,
按右鍵也可以跳出選單,
可是....
他是出現在那個主要的window視窗上面,
在Edit上按右鍵都是出現像是記事本上出現的複製貼上等,
我用不出來要怎樣在Edit上實現這個功能,
有沒有人能大概講一下要在哪裡建置Menu以及給的參數?
在WinProc裡我有
hwndPopMenu = LoadMenu (hInstance, MAKEINTRESOURCE(IDR_MYPOPMENU)) ;
hwndPopMenu = GetSubMenu (hwndPopMenu, 0) ;
再來WM_CREATE我建立了一個
hwndEditShow = CreateWindow (TEXT ("Edit"), NULL,
WS_CHILD | WS_VISIBLE | ...(略),
cxChar, cyChar * 4, cxChar * 116, cyChar * 12,
hwnd, (HMENU) ID_EDIT_SHOW,
(HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL) ;
接下來WM_RBUTTONDOWN
ClientToScreen (hwnd, &point) ;
TrackPopupMenu (hwndPopMenu, TPM_RIGHTBUTTON, point.x, point.y, 0, hwnd, NULL) ;
這裡大概是主要的地方,
我東改西就是沒辦法在Edit內按右鍵顯示PopUpMenu...
請問一下我該怎麼做才可以達到我要的效果?
因為我想要在Edit內對文字反白,
然後按右鍵對該文字上色,
這個Edit是不能編輯的,主要是用來顯示,
原本是打算用Static,但是因為它好像不能把文字反白起來,所以用Edit。
還有我再多請問一下,
因為我剛學win32不久,
網路上的資訊也沒有很多,
一般會有一個CALLBACK WinProc來處理程序,
因為有宣告一個ClassWindow才會有的,
那我可以再多宣告一個嗎?
例如使用Edit、ListBox等?
還有,
我對這裡的HWND有一點不是很懂,
以VB裡元件的概念可以解釋嗎?
也就是說,我宣告一個HWND hEdit;
然後再Create一個edit,
那hEdit就代表這一個edit控制項,是這樣嗎?
跟VB裡拉一個text元件,然後Name叫做hEdit是相同意思嗎?
最後,
HINTANCE這個"實例",
是指說有註冊一個類別就會有一個實例,
那它就是代表...恩...VB裡的表單(Form)?
然後一個HINTANCE裡面可以有很多個HWND?
不好意思問了這一些問題,
不過如果概念的東西沒有用懂感覺之後會很難進行...
而且API跟一堆Message,
裡面又有wparam、lparam,各自又代表好多資訊...
=.=
好想要有像C#一樣明瞭的介面呀~(遠目
好吧=.=
不知不覺又講了一些小抱怨的話,
請問我的那些問題有甚麼解嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.62.103
→
08/31 22:49, , 1F
08/31 22:49, 1F
→
08/31 23:04, , 2F
08/31 23:04, 2F
→
08/31 23:09, , 3F
08/31 23:09, 3F
→
08/31 23:10, , 4F
08/31 23:10, 4F
→
08/31 23:11, , 5F
08/31 23:11, 5F
→
09/01 00:07, , 6F
09/01 00:07, 6F
推
09/01 00:09, , 7F
09/01 00:09, 7F
→
09/01 00:09, , 8F
09/01 00:09, 8F
→
09/01 00:13, , 9F
09/01 00:13, 9F
→
09/01 00:42, , 10F
09/01 00:42, 10F
→
09/01 00:42, , 11F
09/01 00:42, 11F
→
09/01 00:42, , 12F
09/01 00:42, 12F
→
09/01 00:42, , 13F
09/01 00:42, 13F
→
09/01 00:49, , 14F
09/01 00:49, 14F
→
09/01 00:51, , 15F
09/01 00:51, 15F
→
09/01 00:55, , 16F
09/01 00:55, 16F
推
09/01 03:30, , 17F
09/01 03:30, 17F
→
09/01 11:42, , 18F
09/01 11:42, 18F
→
09/01 11:44, , 19F
09/01 11:44, 19F
→
09/01 12:32, , 20F
09/01 12:32, 20F
→
09/02 15:42, , 21F
09/02 15:42, 21F