vc++中调用AnimateWindow动态建立窗口
1:首先建立一个单文档工程
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.
感谢网友 无忘我(qq:361577203)的帮助
posted on 2005-07-22 10:50 Richinger 阅读(3146) 评论(1) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)