E D R , A S I H C RSS

MoreMFC

DeleteMe) ๋” ƒ ž‹ ˜ ฃผ๋„•˜— „–‰•  ˆ˜ —†„ฒƒ ฐ™œผ๋ฉด, ธ๋ƒฅ Ž˜ง€๋ฅผ ผ๋ฐ˜™”‹œ‚ค๋Š” ฒƒ‹„๋“ฏ •จ.

Programming with Mfc - Jeff prosise (ฑ… 𔕠•๋„ or ฑ…žฅ‚ฌ.. --;)


1. ๋ชฉ‘œ & žก๋‹

 „žฑ…„ ฐ€ง€  žˆ๋Š” ด€„๋กœ, ›„œ 70000›, •œ„œ 45000˜ ฑฐธˆ€ ๋“ค•„š”ฐ€ —†—ˆŒ.

01.06.2002 ๋ถ€„„–‰ • ฒƒ ฐ™Œ. ›„๋”ฑ›„๋”ฑ ๋ณผ„š, ธ๋Ÿฌ๋‚˜ source ๋Š” ๋‹ณ๋ณผ ฒƒž„. -- v ('๋‹—ฐ•œฑฐง€..')

ธ๋ฆฌ , petzold •„ฐŒ˜ ฑ…๋„ ฐ™•„”ฉ ๋ณด•„ ๋‚˜ฐˆฒƒž„ ('˜ˆ „— ๋ณด ‹€ ฒƒ๋“ค๋งŒ ๋ด„œ.. ๋ญ”†Œ๋ฆฐง€ ๋ชจ๋ฆ„. --a')

ธ๋Ÿผ.. to be continue..

--; 1›” 11ด ๋˜„œ•ธฐ ‹œž‘.. --;

2. „–‰ ƒ™ฉ

2.1. 1›” 11

  • œœ•œ ‹œž‘—ˆ๋‚˜?.. ˜ž๋ณด๋ฉด ธˆ๋ฐฉ ๋ณผฒƒ„.. (•„ •ˆ๋˜๋ฉด skipง€.. ) ธ๋Ÿฐ๋ฐ.. š”๋ ‡ฒŒ  œผ๋‹ˆนŒ.. ๋ชฌ•ด ๋จน „ค.. ใ…‹ใ…‹ –ดจŒ๋“  ™”Œ…ด๋‹ค.. T-T

3. Programming with MFC

3.1. Chapter1. Hello, MFC

–ธ œ๋‚˜ ธ๋ ‡๋“ฏ, Window programming„ • •Œ ˜Œ ๋“ฑžฅ•˜๋Š” ˜ˆ œ๋Š”. Hello~ ‹œ๋ฆฌฆˆ๋‹ค. ธ source๋ฅผ †ต•ด MFC”„๋กœธ๋žจ— ฒซ๋ฐœ„ ๋””๋”œฒƒด๋ฉฐ.. š”ฑ…— ๋‚˜˜œˆ๋„šฐ˜ ด๋ชจ €๋ชจ— ด€•„ค๋ช…• ฒƒด๋‹ค. ๋ญ .. ๋Œ€ถฉ๋Œ€ถฉ •ด๋‚˜ฐˆ ฒƒง€๋งŒ.. ธ๋Ÿผ.. windows programming˜ „„๋กœ. gogogo -- v


dos ‹œ ˆ˜  ˆฐจ‹ ”„๋กœธ๋žจ˜ Šตด€—  –€ ”„๋กœธ๋ž˜๋จธ๋ฅผ œ„•ฑ…๋„ —ญ‹œ •„ฃผž˜ œˆ๋„šฐ ”„๋กœธ๋ž˜๋ฐ–ด๋–ปฒŒ ๋‹ค๋ฅธง€ „ค๋ช…•ค€๋‹ค. ธ๋Ÿฌ๋‚˜, ฑธ ๋‹‹œ‹„ค๋ช…•  •„š”๋Š” —† .. ๋–ก•˜‹ˆ ธ๋ฆผ •œžฅด๋ฉด ๋‹„ค๋ช… ๋ ฒƒ ฐ™๋‹ค. ธ๋Ÿผ.. image!



image „ค๋ช….. -> ๋‚˜‘—.

..

ธ๋ฆฌ , MFC๋ฅผ •˜ธฐ „— ผญ •œ๋ฒˆ”ฉ ๋‚˜˜ค๋Š” SDK๋กœ •˜๋Š” windows programming. source.

MFCžฒด๋Š” ด๋Ÿฐ WinMainด๋‚˜ WndProc ๋Š” ฐถ”ง€๋งŒ ๋ฐ‘‹—„œ ด๋Ÿฐ ‹œผ๋กœ ๋Œ•„„‹ค๋Š” ฒƒ„ กฐธˆด๋ผ๋„ •ŒฒŒ •˜ธฐ œ„•„œ ฌ•จ. ๋ฌด‹œ•ด๋„ ƒด€ —†Œ. ใ…‹ใ…‹
~cpp 
// ฃผ„ —†Œ.. ธ๋ƒฅ.. WinMainณผ WndProcฐ€ žˆตฌ๋‚˜๋งŒ ๋ณด „˜–ด ฐ€‹œธธ.. ‚ค‚ค
// ถธˆ•˜๋ฉด ฐพ•„ ๋ณด‹œšฐ~
#include <windows.h>

int WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
WNDCLASS wc;
HWND hWnd;
MSG msg;

wc.style = 0;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon (NULL, IDI_WINLOGO);
wc.hCursor = LoadCursor (NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = _T("MyWndClass");

RegisterClass (&wc); 

hwnd = CreateWindow (_T("MyWndClass"), "SDK Application", 
      WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT,
      CW_USEDEFAULT,
      CW_USEDEFAULT,
      CW_USEDEFAULT,
      HWND_DESKTOP,
      NULL,
      hInstance,
      NULL ); // window๋ฅผ ๋งŒ๋“ค—ˆง€๋งŒ ๋ณดง€๋Š” •Š๋Š”๋‹ค.

ShowWindow (hWnd, nCmdShow); // window ๋ณด—ฌฃผธฐ. --;
UpdateWindow (hWnd);
while (GetMessage (&msg, NULL, 0, 0))
{ // ๋ฌด•œ ๋ฃจ”„๋ฅผ ๋Œ๋ฉด„œ message — žˆ๋Š” message๋ฅผ ฐ€ ˜จ๋‹ค.
  // WM_QUIT messageฐ€ ๋ฐœƒ•˜๋ฉด GetMessageฐ€ 0„ ๋ฐ˜™˜•˜—ฌ ”„๋กœธ๋žจ ข…๋ฃŒ.
 TranslateMessage (&msg);
 DispatchMessage (&msg);
}

return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message) 
	{
		case WM_PAINT:
			hdc = BeginPaint(hWnd, &ps);
			EndPaint(hWnd, &ps);
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
// ด๋ ‡ฒŒ •ˆ๋ณดด๋Š” ณณ— WinMainณผ WndProc๋ผ๋Š” ฒƒกดžฌ•„œ, message๋ฅผ ๋ฐ›•„„œ ˜๋ฆฌ•œ‹ค.
// ž„•œฒƒ€ charles petzold˜ Programming Windows๋ผ๋Š” ฑ…— ๋ณด๋ฉด —„ฒญ ž˜๋‚˜™€ žˆ๋‹ค. --;
// ฑ…๋„‹‹œ •œ๋ฒˆ ›Œ„ฐ ๋ด• ‹ค. T-T ˜Œ—  œ๋Œ€๋กœ ๋ณผฑธ.. ๋‹‹œ ๋ณดฒŒ ๋˜‹ค๋‹ˆ.. T-T
ธ๋Ÿผ  œ ฑ…—„œ ˜Œ ๋‚˜˜ค๋Š” MFC programming source๋ฅผ.. ณตœ •œ‹ค. Dialog based๋กœ ”„๋กœ Šธ๋ฅผ —ฐ›„ Dialog— ด€•œ class๋Š” project—„œ ๋บ€›„ Appด๋ž˜Šค๋‚ด— ด source๋ฅผ ณฃผ๋ฉด ๋ ฒƒด๋‹ค. - ‹ ธฐ •˜ฒŒ๋„ App class™€ MainWindowด๋ž˜Šค๋งŒ žˆ๋‹ค. ด๋Ÿฐ source๋Š” ˜Œ ๋ด„œ ƒ†Œ –ˆง€๋งŒ, MFC—„œ  œณต•ฃผ๋Š” source๋ณด๋‹ค๋Š” น”๋”•ด ๋ณด˜€๋‹ค.-
~cpp 
// hello.h
class CMyApp : public CWinApp
{
public:
    virtual BOOL InitInstance ();
};

class CMainWindow : public CFrameWnd
{
public:
    CMainWindow ();

protected:
    afx_msg void OnPaint ();
    DECLARE_MESSAGE_MAP ()
};

// hello.cpp
#include <afxwin.h>
#include "Hello.h"

CMyApp myApp;

/////////////////////////////////////////////////////////////////////////
// CMyApp member functions

// ”„๋กœธ๋žจ„ ดˆธฐ™” • ˆ˜ žˆ๋Š” ฐ€žฅ   ˆ•œ žฅ†Œ. --a
// CWinApp::InitInstance๋ฅผ override•œ ฐ€ƒ•ˆ˜ด๋‹ค.
BOOL CMyApp::InitInstance ()
{
    m_pMainWnd = new CMainWindow; // œˆ๋„šฐ ƒ„ฑ
    m_pMainWnd->ShowWindow (m_nCmdShow); // 
    m_pMainWnd->UpdateWindow ();
    return TRUE;
}

/////////////////////////////////////////////////////////////////////////
// CMainWindow message map and member functions

BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
    ON_WM_PAINT ()
END_MESSAGE_MAP ()

CMainWindow::CMainWindow ()
{
    Create (NULL, _T ("The Hello Application"));
}

void CMainWindow::OnPaint ()
{
    CPaintDC dc (this);
    
    CRect rect;
    GetClientRect (&rect);

    dc.DrawText (_T ("Hello, MFC"), -1, &rect,
        DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
๋–ก•˜‹ˆ source๋ฅผ ๋ณด๋ฉด –ด๋–ปฒŒ ๋Œ•„ฐ€๋Š” ฑฐ•ผ.. --; ๋ผ๋Š” ƒฐด ๋“ ‹ค.. ๋‚˜๋„ ž˜๋ชจ๋ฅธ๋‹ค. ธ๋Ÿฐ๋ฐ ฐ€žฅ ‘š”•œฒƒ€ global˜—ญ— myApp๋ผ๋Š” ๋ณ€ˆ˜ฐ€ „ –ธ๋˜–ด žˆ๋‹ค๋Š” ‚ฌ‹ด๋‹ค. myApp ๋ผ๋Š” instanceฐ€ ”„๋กœธ๋žจ˜ instanceด๋‹ค. --a (œดˆ˜ ”„๋กœธ๋žจœผ๋กœ Šค„Šค™”..) ธ๋ฆฌ , CWinApp๋ฅผ ƒ†•œ CMyApp— žˆ๋Š” œ •œ •ˆ˜ initInstance —„œ ‹ œ window๋ฅผ ๋งŒ๋“ค–ดค€๋‹ค.(InitInstance•ˆ˜๋Š” ‘šฉ ”„๋กœธ๋žจ˜Œ ƒธธ ๋•Œ, ณก windowฐ€ ƒ„ฑ๋˜ธฐ „, ‘šฉ ”„๋กœธ๋žจ‹œž‘•œ ๋ฐ”๋กœ‹Œ— ˜œ๋œ‹ค) ด ๋ถ€๋ถ„—„œ CMainWindow˜ instance๋ฅผ ๋งŒ๋“ค–ด ๋ฉค๋ฒ„ ๋ณ€ˆ˜ธ m_pMainWnd๋กœ pointing•œ‹ค.  œ window๋Š” ƒ„ฑ ๋˜—ˆ๋‹ค. ธ๋ ‡ง€๋งŒ, ธฐ–ต•••  ฒƒ•„ง window๋Š” ๋ณดง€ •Š๋Š”๋‹ค๋Š” ‚ฌ‹ด๋‹ค. ธ๋ž˜„œ, CMainWindow˜ pointer(m_pMainWindow)๋ฅผ †ต•„œ ShowWindow™€ UpdateWindow๋ฅผ ˜œ•ค€๋‹ค. ธ๋ฆฌ  TRUE๋ฅผ return •œผ๋กœจ ๋‹Œ ž‘—…œผ๋กœ „–‰ •  ˆ˜ žˆฒŒ •ค€๋‹ค.... ˜. ˜„œผ ๋ญ”†Œ๋ฆฐง€ •˜๋‚˜๋„ ๋ชจ๋ฅด „ค~ บฌบฌ.. to be continue..

...

ธ๋ฆฌ , ธ ๋‹Œœผ๋กœ „–‰๋˜๋Š” ฒƒด. CMainWindow— žˆ๋Š” OnPaintผ๋Š” •ˆ˜. window˜ client ˜—ญ— ๋ฌด–ธฐ€๋ฅผ ธ๋ฆฌ๋Š” •ˆ˜ฐ€ ˜œ๋œ‹ค. ( „— ฒƒ  €ฒƒ ๋งŽžˆ ง€๋งŒ... ๋ญ ๋งคฌ๋กœ๋ฅผ †ต•ด messagemap ด€๋ จ entry๋ผ๋˜ง€.. ด๋Ÿฐฒƒ๋“ค„ „ –ธ•ฃผ๋Š” ž‘—….. --a) ธ๋ž˜„œ, DrawText๋ฅผ šฉ•™”๋ฉด ‘•™— "Hello, MFC"๋ฅผ ธ๋ฆฐ๋‹ค. ธ๋Ÿฌ๋ฉด ”„๋กœธ๋žจ˜ ธฐ๋Šฅ(?)€ ๋ด๋‹ค.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:49
Processing time 0.0206 sec