我正在尝试制作一个函数,当我调整窗口大小时,它可以用它的父窗口缩放窗口的控件,为了实现这一点,我嵌入CreateWindowEx()
到我自己的函数中createscalingwindow
int createscalingwindow (HWND cswpara0,DWORD cswpara1,const CHAR* cswpara2,
const CHAR* cswpara3,DWORD cswpara4,int cswpara5,int cswpara6,int cswpara7,
int cswpara8,HWND cswpara9,HMENU cswpara10,HINSTANCE cswpara11,LPVOID cswpara12)
{
cswpara0 = CreateWindowEx (cswpara1, cswpara2, cswpara3, cswpara4,
cswpara5,cswpara6,cswpara7,cswpara8,
cswpara9,cswpara10,cswpara11,cswpara12);
return 0;
}
在winmain中更改此代码后
mainwin = CreateWindowEx(
0,
mainclassname,
"Mafia Online",
WS_OVERLAPPED|WS_CAPTION|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX
|WS_SYSMENU,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
NULL,
playmenu,
hThisInstance,
NULL
);
到下面的代码
createscalingwindow (mainwin, 0, mainclassname, "Mafia Online",
WS_OVERLAPPED|WS_CAPTION|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU,
CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, NULL, playmenu, hThisInstance, NULL);
ShowWindow (mainwin, nCmdShow);
主窗口根本不再显示。GetLastError()
在嵌入CreateWindowEx()
返回 error_success之后调用。
在 ollydbg 中检查了程序的两个变体后,我注意到了一些奇怪的事情,使用原型执行程序并没有按照我期望的方式工作。程序调用到CreateWindowEx
然后从调用返回到一个完全不同的目的地。
以下是我期望程序执行的方式(这是不使用的程序createscalingwindow
):(我不允许以新用户的身份发布图像,所以如果一个模组或某人可以为我解决这些问题,那就太好了。 )
http://s8.postimage.org/qo8tqt5h1/mainnormal.png
以下是它的执行方式: http ://s8.postimage.org/fa8ytr7qt/mainweird.png
感谢您为帮助我所做的任何努力,因此在此先感谢您。