2012-03-01 52 views
0

大家好,我是相当新的赢得api和使用C.我想知道我将如何显示在我的对话框应用程序的横幅。我设法用下面的代码加载应用程序图标。显示对话位图

LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1)); 

但是,我有点不确定如何在对话框上做到这一点。使用visual studio我能够创建图片控件框,它给了我IDC_STATIC1我是否使用sendmessage来加载位图文件?

对不起,如果它的一个愚蠢的问题,我今天早上有一个很好的路线谷歌,但没有成功。

+0

你说横幅,但是你想设置对话框的图标吧? – vulkanino 2012-03-01 15:38:49

+0

对不起,我没有明确表示它的只是一个标志,它将出现在主IDC_DIALOG窗口,即公司徽标不是顶部图标栏,但如果你可以阐明,以及它将不胜感激。我接受它我需要定义并添加.ico 16x16大小? – 2012-03-01 15:40:12

回答

0

如果你想从你的应用程序的资源加载图像:

hBitmap = (HBITMAP) LoadImage (
    hInst, 
    MAKEINTRESOURCE(id), 
    IMAGE_BITMAP, 
    0, 0, 
    LR_CREATEDIBSECTION); 

如果你想从外部文件加载图像:

hBitmap = (HBITMAP) LoadImage (
    0, 
    path, 
    IMAGE_BITMAP, 
    0, 0, 
    LR_LOADFROMFILE); 

现在要显示的图像在你的对话框的客户区,那么你必须blit它。

HDC hdcDst = CreateCompatibleDC(NULL); 
BitBlt(hdcDst, x, y, width, height, sourceDc, xSource, ySource, mode); 

想一想,你正在做所有这些硬/旧的方式;直接调用SDK后Visual C++/MFC/.NET/WPF/...

+0

如果你想使用图标而不是图像,这里有一个很好的解释:http://msdn.microsoft.com/en-us/library/ms648051 – vulkanino 2012-03-01 16:00:38

+0

谢谢我稍后再试一试,非常感谢你回复我尽管我会学习旧方式,然后新的现在我知道他们为什么使它更容易大声笑。我会投票给你的答案,但今天新的,所以不能投票。 – 2012-03-01 16:52:28

+0

既然你是@RupertMurdoch我会很高兴与coupla百万美元,而不是投票。 :) – vulkanino 2012-03-01 16:57:53