0
我想要一個無邊框對話框,但卻有對話框陰影。我遇到了這種解決方案Borderless Window Using Areo Snap, Shadow, Minimize Animation, and Shake,它通過使對話框的邊距爲1 px並將客戶區擴展到該解決方案來使用解決方法。通過MFC對話框中的對話框邊距繪圖
MARGINS borderless = { 1, 1, 1, 1 };
DwmExtendFrameInfoClientArea(this->GetSafeHwnd(), &borderless);
帖子中提到的客戶區字面上正在擴展和透明拉絲再次使得1px的每個可見對話框的邊緣。
現在,這到底發生了什麼,當我試圖畫一個實心矩形到整個對話:
// getting the client area
CRect clientRect;
GetClientRect(&clientRect);
// expanding it to the new margins
clientRect.left -= 1;
clientRect.top -= 1;
clientRect.right += 2;
clientRect.bottom += 2;
// set the Device Context to draw non transparent and with a black background
pDC->SetBkMode(OPAQUE);
pDC->SetBkColor(RGB(0, 0, 0));
// finally draw a rectangle to it
CBrush brush_back_ground(RGB(0, 0, 0));
pDC->FillRect(clientRect, &brush_back_ground);
但對話仍與它的利潤率得出:
如何將它有可能繪製一些東西在邊緣?稍後我將使用圖片作爲對話框背景,這些背景也應該繪製在邊緣上。
不能使用傳統24 bpp的GDI函數在玻璃面積繪製,輸出將保持透明。你需要32bpp渲染,alpha通道必須包含,GDI +可以做到這一點。 – 2014-10-03 12:21:09