WIN32使用者介面設計基礎之Menus 篇

2021-05-11 12:39:05 字數 2068 閱讀 3283

2002-04-05 09:53

出處:yesky

三、 選單的動態更改

1、 插入新的選單項insertmenuitem()

首先填寫menuinfo結構

typedef struct tagmenuiteminfo menuiteminfo, *lpmenuiteminfo;

然後呼叫insertmenu()函式

insertmenu(

hmenu hmenu;

uint nitems;

bool ispisition;//設為true,nitems為選單項的索引號,設為false,nitems為選單項的id

lpcmenuiteminfo lpmiinfo;)

2、 修改選單項屬性使用setmenuiteminfo()函式

3、 刪除選單項

deletemenu()和removemenu(),選單項刪除後用drawmenubar()重繪選單顯示更新

四、 選單特效

1、 快捷選單

捕獲父視窗的wm_contextmenu(使用者在視窗中右擊滑鼠將啟用該事件),呼叫函式

trackpopupmenuex();trackpopupmenuex(hm,

0,get_x_lparam(lparam),get_y_lparam(lparam),hwnd,null);hm為選單控制代碼,get_x_lparam(不知怎麼不能用)巨集獲得事件發生時滑鼠的x座標,hwnd為父視窗控制代碼

2、 位圖選單

menuiteminfo結構的fmask中新增miim_bitmap標誌,為期hbmitem指定乙個指向點陣圖的指標

五、 自繪製選單

1、 指定標誌

要實現自繪製必須使選單項的風格符合要求,有兩種方法可以做到,其一是用insertmenuitem()函式插入,其二是用setmenuiteminfo()函式修改,不論使用哪乙個都必須填寫乙個menuiteminfo結構,為其fmask新增miim_ftype,為其ftype新增mft_ownerdraw。和列表框一樣,對選單項進行自繪製是

設計到較多的資料傳遞,可以存放在menuiteminfo結構中,設定fmask為miim_data,然後給dwitemdata成員賦值。wm_drawitem(lpdrawitemstruct)和wm_measureitem(lpmeasureitemstruct)的引數中都含有itemdata成語用於取出預先存放的資料。

例如:menuiteminfo mi;

hmenu hmn;

mi.fmask=miim_ftype;

milftype=mft_ownerdraw;

hmn=getmenu(hwnd);

setmenuiteminfo(hmn,0,true,&mi);

2、 處理wm_measureitem訊息

使用者單擊,選單即將顯示時,選單的父視窗接收到wm_measureitem訊息,捕獲此訊息可以設定選單項的尺寸,例如:

lpmeasureitemstruct lpmis;

lpmis=(lpmeasureitemstruct)lparam;

lpmis->itemheight=48

lpmis->itemwidth=144;

3、 處理wm_drawitem訊息

wm_drawitem訊息的lparam引數為乙個lpdrawitemstruct指標,其中含有指向被繪製的選單項的裝置場景指標、選單id和狀態等資訊,根據這些資訊進行繪製,例如:

lpdrawitemstruct lpdis;

hdc hmem;

hbitmap hbm;

hmem=createcompatibledc(lpdis->hdc);

hbm=loadbitmap(hinst,makeintresource(idb_menumap));

selectobject(hmem,hbm);

bitblt(lpdis->hdc,0,0,lpids->rcitem.right,lpdis->rcitem.bottom,hmem,0,0,srccopy);

win32 使用者介面設計基礎之cursor篇

一 標準滑鼠替換 windows提供了一系列標準滑鼠,其標示字首均為idc 用setsystemcursor 函式可以替換系統的標準滑鼠。setsystemcusor 有兩個引數,第乙個為乙個通過loadcursor loadcursor 函式以被loadimage 函式取代 createcurso...

Android 使用者介面設計之TextView

2.文字的鏈結 將文字中的 號碼,email url layout 中的xml 檔案中進行新增 另一種是在 activity 的oncreate 方法中新增 xml檔案設定 all,map,none,email,phone 以及web 在這我們以設定為 phone 為例。號碼不是尚矽谷老師的,隨便編...

Android 使用者介面設計之TextView

5.富文字 先說一下什麼是富文字,富文字就是對文字中一些特殊文字或者的特殊顯示。例如我們我們發一段話 你還沒有還我 100塊錢。這句話我們要強調 100塊錢 這是後我們可以把它顯示為特殊的顏色,這其實就是一種富文字。有時候我們 qq聊天經常發表情,其實這也是一種富文字。富文字,可以支援一部分的 ht...