做過UG二次開發的都知道,在UG裡做二次開發的主要介面就是對話方塊了,UG自己定義了一套二次開發的介面介面,即所謂的UIStyler,對於我們用慣了MFC及Windows的訊息機制來說,它那點簡單的事件對映,僅有的幾個控制元件(好像連常用的樹控制元件都沒有)讓我們沒有發揮的餘地。於是使用MFC對話方塊代替UG的對話方塊是每個從MFC進入UG二次開發的人的首先想法。關於怎麼在UG中使用MFC對話方塊已經有文章講過了,我這裡就不再講了。但MFC對話方塊的一個很大的缺點就是與UG對框的風格不統一。UG的對話方塊都具有統一的風格,首先,按鈕都具有自己的風格,比如它的四個角是圓角,滑鼠移到上面會顯示一個Focus的框。然後它的所有對話方塊都是一級一級彈出來的,比如點選OK按鈕,可能會彈出下一個對話方塊,而上一級對話方塊會隱藏掉,按Back按鈕會重新返回到上一個對話方塊。再有,一旦有另外一個對話方塊彈出,當前的對話方塊都會隱藏或銷燬。
下面就給出我的仿UG對話方塊風格的對話方塊類CHsPMEDialog,它除了實現了上面的三點UG風格外,由於UG似乎對鍵盤訊息做了截獲,如果是普通的MFC對話方塊,在UG內使用時一些特殊的功能鍵就無效了,比如TAB鍵、回車鍵、ESC都無效了。為此在我的類中,還使用了鍵盤鉤子截獲這幾個按鍵訊息並做出處理。
做過UG二次開發的都知道,在UG裡做二次開發的主要介面就是對話方塊了,UG自己定義了一套二次開發的介面介面,即所謂的UIStyler,對於我們用慣了MFC及Windows的訊息機制來說,它那點簡單的事件對映,僅有的幾個控制元件(好像連常用的樹控制元件都沒有)讓我們沒有發揮的餘地。於是使用MFC對話方塊代替UG的對話方塊是每個從MFC進入UG二次開發的人的首先想法。關於怎麼在UG中使用MFC對話方塊已經有文章講過了,我這裡就不再講了。但MFC對話方塊的一個很大的缺點就是與UG對框的風格不統一。UG的對話方塊都具有統一的風格,首先,按鈕都具有自己的風格,比如它的四個角是圓角,滑鼠移到上面會顯示一個Focus的框。然後它的所有對話方塊都是一級一級彈出來的,比如點選OK按鈕,可能會彈出下一個對話方塊,而上一級對話方塊會隱藏掉,按Back按鈕會重新返回到上一個對話方塊。再有,一旦有另外一個對話方塊彈出,當前的對話方塊都會隱藏或銷燬。
下面就給出我的仿UG對話方塊風格的對話方塊類CHsPMEDialog,它除了實現了上面的三點UG風格外,由於UG似乎對鍵盤訊息做了截獲,如果是普通的MFC對話方塊,在UG內使用時一些特殊的功能鍵就無效了,比如TAB鍵、回車鍵、ESC都無效了。為此在我的類中,還使用了鍵盤鉤子截獲這幾個按鍵訊息並做出處理。