如何使对话框置顶和半透明???

ytfitihc 2006-10-15 12:54:46
在VC中新建一对话框程序,如何使这个程序中默认的那个对话框,就是刚出来有确定和取消按钮的那个对话框,,实现置顶和半透明效果呢??谢谢大家
...全文
684 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ririhaoma 2006-10-15
  • 打赏
  • 举报
回复
setwindowpos()
ytfitihc 2006-10-15
  • 打赏
  • 举报
回复
问题已解决,谢谢各位
Y___Y 2006-10-15
  • 打赏
  • 举报
回复
CWnd::SetWindowPos
BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );

Return Value

Nonzero if the function is successful; otherwise 0.

Parameters

pWndInsertAfter

Identifies the CWnd object that will precede this CWnd object in the Z-order. This parameter can be a pointer to a CWnd or a Pointer to one of the following values:

wndBottom Places the window at the bottom of the Z-order. If this CWnd is a topmost window, the window loses its topmost status; the system places the window at the bottom of all other windows.


wndTop Places the window at the top of the Z-order.


wndTopMost Places the window above all nontopmost windows. The window maintains its topmost position even when it is deactivated.


wndNoTopMost Repositions the window to the top of all nontopmost windows (that is, behind all topmost windows). This flag has no effect if the window is already a nontopmost window.
See the “Remarks” section for this function for rules about how this parameter is used.

x

Specifies the new position of the left side of the window.

y

Specifies the new position of the top of the window.

cx

Specifies the new width of the window.

cy

Specifies the new height of the window.

nFlags

Specifies sizing and positioning options. This parameter can be a combination of the following:

SWP_DRAWFRAME Draws a frame (defined when the window was created) around the window.


SWP_FRAMECHANGED Sends a WM_NCCALCSIZE message to the window, even if the window's size is not being changed. If this flag is not specified, WM_NCCALCSIZE is sent only when the window's size is being changed.


SWP_HIDEWINDOW Hides the window.


SWP_NOACTIVATE Does not activate the window. If this flag is not set, the window is activated and moved to the top of either the topmost or the nontopmost group (depending on the setting of the pWndInsertAfter parameter).


SWP_NOCOPYBITS Discards the entire contents of the client area. If this flag is not specified, the valid contents of the client area are saved and copied back into the client area after the window is sized or repositioned.


SWP_NOMOVE Retains current position (ignores the x and y parameters).


SWP_NOOWNERZORDER Does not change the owner window’s position in the Z-order.


SWP_NOREDRAW Does not redraw changes. If this flag is set, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title and scroll bars), and any part of the parent window uncovered as a result of the moved window. When this flag is set, the application must explicitly invalidate or redraw any parts of the window and parent window that must be redrawn.


SWP_NOREPOSITION Same as SWP_NOOWNERZORDER.


SWP_NOSENDCHANGING Prevents the window from receiving the WM_WINDOWPOSCHANGING message.


SWP_NOSIZE Retains current size (ignores the cx and cy parameters).


SWP_NOZORDER Retains current ordering (ignores pWndInsertAfter).


SWP_SHOWWINDOW Displays the window.
Y___Y 2006-10-15
  • 打赏
  • 举报
回复
// 设置透明窗口
SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE)^0x80000); //0x80000 : WS_EX_LAYERED
HINSTANCE hInst = LoadLibrary("User32.DLL"); // 显式加载DLL
if (hInst != NULL)
{
typedef BOOL (WINAPI *MYFUNC)(HWND, COLORREF, BYTE, DWORD);
// 取得SetLayeredWindowAttributes函数指针
MYFUNC pFunc = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if (pFunc != NULL)
{
pFunc(m_hWnd, 0, 128, 2); // 2 : LWA_ALPHA
}
FreeLibrary(hInst);
hInst = NULL;
}
palmax 2006-10-15
  • 打赏
  • 举报
回复
add WS_EX_TOPMOST style
use SetLayeredWindowAttributes to set the alpha
ytfitihc 2006-10-15
  • 打赏
  • 举报
回复
对不起啊,本人菜鸟,大家能不能具体说说怎么做啊!!!谢谢

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧