VC建立圓角dialog的實現方法

2022-10-04 01:36:09 字數 611 閱讀 5632

第一步:我們在oncreate函式中來實現,**量也不多。

int ctestdialog::oncreate(lpcreatestruct lpcreatestruct)

如果對話方塊還支援resize的話,那麼需要在onsize函式中拷貝乙份上面的**。

第二步:因為圓角部分的重繪屬於對話方塊的非客戶區,所以我們需要響應wm_ncpaint訊息,在訊息響應函式中實現貼圓角的功能或者畫上圓角線。

void ctestdialog::onncpaint()

為了達到自己想要的效果,可能還要響應wm_ncactive和wm_notify兩個訊息,在這兩個訊息響應函式中實現和onncpaint函式一樣的功能。

還有乙個重要的訊息wm_nccalcsize,在這個訊息響應函式中,主要是重新計算對話方塊的非客戶區的大小,這個函式中的lpnccalcsize_params型別引數lpncsp的lpncsp->rgrc[0]設定的是客戶區的大小,客戶區的高度減小時,非客戶區的高度就增加了,因為對話方塊的總高度是固定的。在建立圓角矩形後,可能會出現客戶區區域大了或者小了,這時,就需要響應該訊息,在這個訊息響應函式中對非客戶區的大小進行調整。

本文標題: vc建立圓角dialog的實現方法

本文位址:

建立圓角dialog

我們有時候需要圓角的對話方塊,要實現這樣的效果,一般包括兩步工作,第一步 將原有對話方塊的直角裁剪掉,第二步 為對話方塊畫上圓角或者為對話方塊貼上乙個圓角的。第一步 我們在oncreate函式中來實現,量也不多。int ctestdialog oncreate lpcreatestruct lpcr...

android 自定義實現圓角Dialog

首先我們需要自定義dialog布局檔案view input pwd dialog.xml,如下 dialog背景圓角定義dialog bg.xml 實現 layoutinflater inflater layoutinflater from getactivity linearlayout layo...

Android 自定義帶圓角的dialog

由於感覺android系統自帶的dialog樣式不是很美觀,就自己定義了乙個dialog 1.在styles裡定義樣式 2.在drawable裡定義乙個shape畫圓角 3.在layout裡定義個性化布局 4.activity裡的 layoutinflater inflater getlayouti...