#include <windows.h>
#include <stdio.h>
TCHAR CarClass[][50]={"sonata", "tico"};
LRESULT CALLBACK WindProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
printf("msg=%04x\n", uMsg);
switch(uMsg)
{
case WM_CREATE: //0001
printf("******hWnd=%d *****\n", hWnd );
return 0;
case WM_PAINT: //000f
{
PAINTSTRUCT lpPaint;
HDC hDC;
char buff[100]; int len;
hDC=BeginPaint(hWnd, &lpPaint);
len=wsprintf(buff, "%s, hWnd=%d","나야", hWnd);
TextOut(hDC, 10,10, buff, len);
EndPaint(hWnd, &lpPaint);
return 0;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
void Register_Class(HINSTANCE hInstance, int k){
WNDCLASS wc;
int red[]={1, 1};
int grn[]={255,1};
int blu[]={1,255};
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hInstance=hInstance;
wc.lpfnWndProc=WindProc;
wc.lpszMenuName=NULL;
wc.style=NULL;
printf("=====RegisterClass(&wc);\n");
wc.lpszClassName= CarClass[k];
wc.hbrBackground=CreateSolidBrush(RGB(red[k], grn[k],blu[k]));
RegisterClass(&wc);
}
void Create_Window(HINSTANCE hInstance, int nCmdShow, int k){
HWND hWnd;
hWnd=CreateWindow(
CarClass[k],
CarClass[k],
WS_OVERLAPPEDWINDOW,
100, 90, 400, 350, NULL, NULL,
hInstance,
NULL);
printf("=====ShowWindow(hWnd,nCmdShow);\n");
ShowWindow(hWnd,nCmdShow);
printf("=====UpdateWindow(hWnd);\n");
UpdateWindow(hWnd);
printf("=====나 창만들었지로ㅇ..\n");
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev,
LPSTR lpCmdLine, int nCmdShow)
{
MSG mSg;
char szTitleName[]="썰렁한 창입니다. --;";
Register_Class( hInstance, 0); //소나타
Register_Class( hInstance, 1); //티코
Create_Window ( hInstance,nCmdShow, 0);//소나타
Create_Window ( hInstance,nCmdShow, 1); //티코
Create_Window ( hInstance,nCmdShow, 1); //티코
printf("=====while(GetMessage(&mSg,NULL,0,0))\n");
while(GetMessage(&mSg,NULL,0,0))
{
TranslateMessage(&mSg);
DispatchMessage(&mSg);
}
printf("=====return mSg.wParam; \n");
return mSg.wParam;
}
문제1)3개의 창중에서 우측 상단의 x버튼을 누를 경우
그 창만 닫는 프로그램을 작성하세요.
만약에 불가능하다면 왜 그런지를 이유와 함께 상세히 설명을 하세요.
>>우선이건 제가 해봤는데 윈도종료메시지를 없애니깐 하나씩 닫히기는 하지만 장치관리자의 프로세서는 없어지지 않더군요.....이유가 먼지 잘 모르겠어요...
문제2)어떤 창에서 마우스 좌측을 클릭하면 나머지 모든 창에
클릭된 원도우 핸들값을 출력하는 프로그램을 설명과 함께 작성하세요
답변좀 부탁드릴께요 가능하면 상세한설명도 부탁합니다
1주일동안 붙잡고 늘어진건데 도저히 답이없네요.....ㅠ.ㅠ
제발 plz 도움부탁드립니다