2012-05-22 140 views
0

因此,我正在開發一個項目,我想要做的第一步是創建一個窗口,然後我想我會在稍後填充它。我用createwindowex使其:ShowWindow無法顯示

IntPtr newWindow = CreateWindowEx(WindowStylesEx.WS_EX_OVERLAPPEDWINDOW, "HelloWin", "New Window", WindowStyles.WS_OVERLAPPEDWINDOW, 0, 0, 100, 100, IntPtr.Zero, IntPtr.Zero, hInstance,IntPtr.Zero); 

而且使用的ShowWindow表現出來:

ShowWindow(newWindow, ShowWindowCommands.Normal); 

有什麼我忘了這2種方法之間做?我沒有收到任何錯誤,並且我設置的所有其他設置都在運行,但窗口並未彈出。謝謝!

+0

您是否在創建窗口的同一個線程上運行了消息循環? –

+0

另外,你是否驗證窗口正在創建正確(並且newWindow不是NULL/0)?你可以在Spy ++中看到它嗎? – BrendanMcK

+0

newWindow是0,我現在就研究它,我不確定它爲什麼會發生,是否有可能父或菜單不需要爲0? –

回答

1

我想,這個問題是,你不要在ShowWindow後調用UpdateWindow。 但我不在.Net工作,只有純粹的win32 api。 :-)

+0

即使使用帶有C的原始Win32 API,在調用ShowWindow之後也不需要顯式調用UpdateWindow。 – jamesdlin

+0

我的錯:-(Cursed .NET :-) – Xearinox