你能用windows gdi制作自定义按钮和菜单吗?

时间:2013-04-12 00:31:15

标签: c++ gdi

使用gdi创建带图片的文件菜单? Windows中的菜单是否只是带有事件的动画?

1 个答案:

答案 0 :(得分:0)

  

您可以使用Windows gdi制作自定义按钮和菜单吗?比如使用gdi创建带图片的文件菜单

可以这样做,但我不明白你为什么要这样做。所有Windows GDI函数都记录在案here。其中有很多,你需要根据你想要完成的事情来确定要调用哪些。

例如,要绘制图片,您需要使用LoadImage函数从某处(如磁盘上的文件或应用程序的嵌入资源)加载位图资源,然后将该位图绘制到屏幕中使用BitBlt函数或其近亲之一的设备上下文。处理WM_PAINT消息是获取可以绘制的设备上下文的首选方法。

从您的问题来看,您似乎对GDI的工作原理没有更多的了解。这将是一个真正的问题,因为你在这里提出的是一项相当大规模的工作。您实际上是重新实现所有Windows用户界面。如果你绝对必须继续,我建议先花一些时间来学习使用GDI绘图的基础知识。也许拿起一本书,比如Charles Petzold的经典Programming Windows, 5th Edition和/或Feng Yuan的优秀Windows Graphics Programming: Win32 GDI and DirectDraw(尽管他们已经绝版了很长一段时间;你需要寻找用过的副本)。

  

Windows中的菜单是否只是带有事件的动画?

就像汉斯的评论所说,不,菜单实际上就是窗户。但操作系统本身会为您处理所有细节,创建菜单,显示项目,执行动画等等。您所要做的就是使用menu-related API functions。它非常简单,效果很好。

您可以自己创建窗口并应用自己的动画来创建自己的菜单。但是,我再次问:为什么?