Source file: /~heha/ewa/Ofen/prozess.zip/prozess.cpp

#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