首先窗口是顶级的(可以接到广播消息等等)
其次窗口是没有任何多余东西的(即整个窗口的区域就是Client区域)请问该如何设置风格?

解决方案 »

  1.   

    查msdn 
    api的  置顶是  WS_TOPMOST, 百度一下 windowsstyle vc 就可以。MFC的貌似可以直接点属性改。。下回说好你的情况。。你的程序是MFC的还是 SDK 的 是大窗口 还是对话框 (因为对话框 它也是窗口 ,你看见的很多东西全是小窗口,按钮也是窗口),
      

  2.   

    创建窗口的时候,选择适合的WS_XXXXXX,具体查阅MSDN
      

  3.   

    Splash Window?参考:
    http://www.xiaozhou.net/cooldog/article.asp?id=23
      

  4.   

    用对话框行不行?int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG_MAIN), NULL, DialogProc);
    return 0;
    }在Resource中创建一个“没有标题、菜单和边框的窗口,可见的”,叫IDD_DIALOG_MAIN的窗口。当然了,对话框的处理函数还得写一下,否则就彻底没响应了。
      

  5.   

    emptyness(loving~) 朋友:    这里有一个小小的误会。我所说的顶级,是相对“弹出窗口(Popup)”“子窗口(Child)”而言的。而您说的WS_EX_TOPMOST是始终显示在其他窗口之前,比如FlashGet的悬浮窗。
        我的程序是纯汇编编写的。不是对话框,是窗口。hzcpig() 朋友:    我查了MSDN,窗口的风格之多让我眼花缭乱。kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net) 朋友:    和您说的Splash Window很像,比Splash Window更简单,因为我不需要淡出效果。    我希望的窗口样子就像VC刚启动的时候弹出的Logo那样,没有边界,没有菜单,没有标题,什么都没有。我希望自己100%掌控窗口的绘制权。
      

  6.   

    guogangj(无名小卒) 朋友:    您说的方法我相信肯定可以,但是我不希望额外添上一个资源文件。
      

  7.   

    kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net) 朋友:    我看了您的源代码,您的方法和guogangj(无名小卒)朋友的方法是一样的,使用了对话框。
      

  8.   

    pFrame->Create(0, _T(""), WS_POPUP, CRect(0, 0, 400, 300));
    pFrame是一个窗口类的指针。
      

  9.   

    xianglitian() 朋友:    WS_POPUP风格的窗口不是顶级窗口,无法用于接收广播消息。
        我发现似乎有一个矛盾,OVERLAPPED窗口是顶级的,而MSDN中对OVERLAPPED窗口有如下描述:WS_OVERLAPPED 
    Creates an overlapped window. An overlapped window has a title bar and a border. Same as the WS_TILED style.WS_OVERLAPPEDWINDOW 
    Creates an overlapped window with the WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, and WS_MAXIMIZEBOX styles. Same as the WS_TILEDWINDOW style. 
    我的想法是不是无法实现呢??
      

  10.   

    我的CreateWindowEx调用总是失败,现在帖出代码,大家帮我分析分析。
    Step1 注册窗口类:
    WNDCLASSEX wndClsEx;wndClsEx.cbSize = sizeof (wndClsEx);
    wndClsEx.style = CS_DBLCLKS | CS_NOCLOSE | CS_HREDRAW | CS_VREDRAW;
    wndClsEx.lpfnWndProc = MainWndProc;
    wndClsEx.cbClsExtra = 0;
    wndClsEx.cbWndExtra = 0;
    wndClsEx.hInstance = hInstance;
    wndClsEx.hIcon = NULL;
    wndClsEx.hCursor = NULL;
    wndClsEx.hbrBackground = COLOR_WINDOW;
    wndClsEx.lpszMenuName = NULL;
    wndClsEx.lpszClassName = szWndCls;
    RegisterClassEx(&wndClsEx);RegisterClassEx返回非零(成功)
      

  11.   

    Step 2 创建窗口hWnd = CreateWindowEx(WS_EX_LEFT, szWndCls, szWndCls, WS_POPUP, 0, 0, 100, 100, NULL, NULL, hInstance, NULL);返回0(失败)
    GetLastError() 返回 ERROR_INVALID_HANDLE
      

  12.   

    CreateWindowEx如果参数对但是失败的话就要检查窗口过程的WM_CREATE处理,一般是这里出错导致的。你先要看能否跟踪进到WM_CREATE里面,如果能进去就是这里的处理有问题,如果截不到该消息就是CreateWindowEx前面的代码有问题或参数有误。
      

  13.   

    我没有特别处理WM_CREATE消息,直接交给DefWindowProc了,还真有可能是这里出的问题,立刻去检查一下。谢谢ringphone(临风)
      

  14.   

    ringphone(临风) 问题解决了,果然是WM_CREATE的问题,谢谢!