• AnimateWindow动态建立窗口



    1.建立一个单文档SID程序

    2:在CMainNFrame的OnCreate()中添加函数调用

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {

    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)  

    return -1;

    .... .... ..........  

    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

    EnableDocking(CBRS_ALIGN_ANY);

    DockControlBar(&m_wndToolBar);

    AnimateWindow(GetSafeHwnd(),2000,AW_SLIDE|AW_HOR_POSITIVE); return 0;

    }

    这样就有了建立窗口的过程

    3:在CMainNFrame类中添加OnClose()消息

    void CMainFrame::OnClose()

    { // TODO: Add your message handler code here and/or call default

    AnimateWindow(GetSafeHwnd(),2000,AW_HIDE|AW_CENTER);

    CFrameWnd::OnClose(); }

    这样就建立了关闭窗口的动态过程

    4:光作上面的工作你还无法完成整个调用过程,因为在编译时你可能会遇到如下情况:
    'AnimateWindow' ,AW_HIDE,AW_CENTER:undeclared identifier 通常碰到这种情况我们可能都会以为是少了包含,AnimateWindow()定义在winuser.h中,

    在stdafx.h 添加#include<winuser.h>后应该可以了吧,重新编译发现上面的问题是没有了,但是又出来了新的 问题 syntax error : missing ';' before identifier 'HDWP' fatal error C1004: unexpected end of file found
    为什么,难道不能调用?后来查了些资料,问题还是没有解决,最后有个网友提醒我,其实不用在 stdafx.h中添加#include<winuser.h>

    在stdafx.h添加如下2行就可以了

    // stdafx.h : include file for standard system include files, //  or project specific include files that are used frequently, but //      are changed infrequently //

    #if !defined(AFX_STDAFX_H__4724EEBC_1F0B_477B_9BB6_2860AA382394__INCLUDED_)

    #define AFX_STDAFX_H__4724EEBC_1F0B_477B_9BB6_2860AA382394__INCLUDED_

    就是下面这2行 #undef WINVER #define WINVER 0X500

    再编译就会发现一切ok.

  • 相关阅读:
    什么是SQLCLR与使用
    SQL Server中使用正则表达式
    YUV格式
    Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理
    Android中利用5.0系统屏幕录制UI漏洞骗取应用录制屏幕授权
    Android解析编译之后的所有文件(so,dex,xml,arsc)格式
    PageRank 算法--从原理到实现
    机器人视觉初级系列
    深入解析 iOS 开源项目
    微信热补丁 Tinker 的实践演进之路
  • 原文地址:https://www.cnblogs.com/fengbo/p/2640758.html
Copyright © 2020-2023  润新知