#include "xy.h"
#include <commctrl.h>
static void repos(HWND Wnd, UINT id, int dx, int dy, int cx, int cy) {
HWND w=GetDlgItem(Wnd,id);
Rect r;
GetWindowRect(w,&r);
r.right-=r.left; r.bottom-=r.top;
ScreenToClient(Wnd,(POINT*)&r);
r.left+=dx; r.top+=dy; r.right+=cx; r.bottom+=cy;
MoveWindow(w,r.left,r.top,r.right,r.bottom,TRUE);
}
BOOL CALLBACK MainDlgProc(HWND Wnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch (msg) {
case WM_INITDIALOG: {
CreateStatusWindow(WS_VISIBLE|WS_CHILD|SBARS_SIZEGRIP,TEXT("Status"),Wnd,3);
const float data[]={10,0,0,10};
const PLOTDATA pd={
TEXT("Test"),0xC4,{data}
};
SendDlgItemMessage(Wnd,16,PM_SETPLOT,-1,(LPARAM)&pd);
}return TRUE;
case WM_COMMAND: switch (wParam) {
case 1:
case 2: EndDialog(Wnd,wParam); break;
}break;
case WM_GETMINMAXINFO: {
MINMAXINFO*mmi=(MINMAXINFO*)lParam;
mmi->ptMinTrackSize.x=400; // Pixel
mmi->ptMinTrackSize.y=300;
}break;
case WM_SIZE: if (wParam!=SIZE_MINIMIZED) {
static SIZE prevsize;
if (prevsize.cx) {
SIZE diff={GET_X_LPARAM(lParam)-prevsize.cx,GET_Y_LPARAM(lParam)-prevsize.cy};
repos(Wnd,12,0,0,0,diff.cy); // TreeView
repos(Wnd,16,0,0,diff.cx,diff.cy); // XY-Graf
repos(Wnd,13,0,diff.cy,diff.cx,0); // Aktionsliste
}
prevsize.cx=GET_X_LPARAM(lParam);
prevsize.cy=GET_Y_LPARAM(lParam);
SendDlgItemMessage(Wnd,3,msg,wParam,lParam); // Statuszeile
}break;
}
return FALSE;
}
void CALLBACK WinMainCRTStartup() {
InitCommonControls();
XY::init();
ExitProcess(DialogBox(0,MAKEINTRESOURCE(1),0,MainDlgProc));
}
extern "C" int _fltused;
int _fltused;
Detected encoding: ASCII (7 bit) | 2
|