Metatrader4의 차트 창에 항상 자식 창을 추가하고 싶습니다. 부모 창이 항상 깜박이지 않고 항상 정적으로 표시됩니다). DLL (C++)에서이 작업을 수행하고 있습니다.DLL을 통해 Metatrader4의 차트에 자식 창 추가 - 깜박임 (다시 그리지 않음)
MT4_EXPFUNC int __stdcall testWindow(HWND hwnd) {
prnt_hWnd = hwnd;
CreateThread(0, NULL, ThreadProc, (LPVOID)L"Window Title", NULL, NULL);
return 0;
}
부모 윈도우의 (그래프) 핸들 파라미터로서 주어진다
는 I는 MQL 측으로부터이 메소드를 호출한다. 다음은, (내 생각) 부모 윈도우가 다시 그려되고 점점 후
가LRESULT CALLBACK DLLWindowProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_PAINT: {
PAINTSTRUCT ps;
BeginPaint(hwnd, &ps);
EndPaint(hwnd, &ps);
return 0;
}
case WM_COMMAND:
/* */
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
시작에서 내 자식 창, 그때, 갑자기 사라질 나타납니다 :
DWORD WINAPI ThreadProc(LPVOID lpParam)
{
MSG messages;
/*
... in createWindowClass:
WNDCLASSEX wc;
wc.hInstance = GetModuleHandle(NULL);
wc.lpszClassName = (LPCWSTR)L"MyClass";
wc.lpszClassName = (LPCWSTR)szClassName;
wc.lpfnWndProc = DLLWindowProc;
wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
...
*/
CreateWindowClass(L"MyClass");
HWND hwnd = CreateWindowEx (0, L"MyClass", NULL, WS_VISIBLE | WS_CHILD , CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, prnt_hWnd, NULL, GetModuleHandle(NULL), NULL);
ShowWindow (hwnd, SW_SHOWNORMAL);
while (GetMessage (&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return 1;
}
나는 윈도우의 메시지를 이런 식으로 처리 깜박 거림 (빨리 사라짐).
저의 목표는 차트에 정적으로, 항상 최상위로 깜박임없이 자식 창을 갖는 것입니다. WS_CHILD 속성없이이 작업을 수행 할 수 있습니다. 그렇지만 내 아이 창은 부모가 아닙니다.