Skip to content

KGSH/KGSH12_DirectX_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 

Repository files navigation

์ •๋ฆฌ ๋ชปํ•œ๊ฒƒ๋“ค

DirectX์— ํฌํ•จ๋ผ ์žˆ๋Š” API๋“ค (P. 23)

  • Direct3D : ๊ธฐ๋ณธ ๊ทธ๋ž˜ํ”ฝ API, 3D๋ฟ๋งŒ ์•„๋‹ˆ๋ผ 2D๋„ ์ง€์›ํ•จ
  • XACT : ์ด API๋Š” ์—ฌ๋Ÿฌ WAVํŒŒ์ผ์˜ ์žฌ์ƒ๊ณผ ๋™์‹œ์— ์žฌ์ƒ ํŠน์„ฑ์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ์ง€์›ํ•จ, ํšจ๊ณผ์Œ๊ณผ ์Œ์•…์— ์œ ์šฉ
  • DirectInput : ์กฐ์ด์Šคํ‹ฑ, ๋ ˆ์ด์‹ฑ ํœ ๋“ฑ ๊ธฐ์กด ์ž…๋ ฅ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์•„์˜ด
  • XInput : ์œˆ๋„์šฐ์™€ Xbox360์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ž…๋ ฅ ๊ด€๋ จ API์ž„, ์œˆ๋„์šฐ XP ์„œ๋น„์Šค ํŒฉ1 ์ด์ƒ๋ถ€ํ„ฐ ๋™์ž‘ํ•จ, ์œˆ๋„์šฐ์—์„œ Xbox360 ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ง€์›ํ•จ, Xinput์€ ๊ธฐ์กด DirectInput๋””๋ฐ”์ด์Šค์—์„œ๋Š” ๋™์ž‘ ์•ˆํ•จ
  • DirectPlay : ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์ง€์›ํ•˜๋Š” API์ž„, ์ธํ„ฐ๋„ท์ด๋‚˜ ๋žœ์„ ํ†ตํ•ด ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์™€ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•œ ๊ฒŒ์ž„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • DirectSetup : ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ DirectX ๋Ÿฐํƒ€์ž„์˜ ์ตœ์ข… ์‚ฌ์šฉ์ž ์„ค์น˜๋ฅผ ์ง€์›ํ•˜๋Š” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•จ

์ ‘๊ทผ ์ œ์–ด์ž (P. 24)

  • private : ์™ธ๋ถ€ ๋ฐ ์ž์‹(ํŒŒ์ƒ) ํด๋ž˜์Šค์—์„œ๋„ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ, ์ž์‹ ๋งŒ ๊ฐ€๋Šฅํ•จ
  • protected : ์ž์‹(ํŒŒ์ƒ) ํด๋ž˜์Šค, ์ž์‹ ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ
  • public : ์ž์‹(ํŒŒ์ƒ) ํด๋ž˜์Šค, ์™ธ๋ถ€, ์ž์‹  ๋ชจ๋‘ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•จ
  • C++์€ ๊ธฐ๋ณธ์ ์œผ๋กœ private์ž„
  • ์ด๋ ‡๊ฒŒ ์ ‘๊ทผ์„ ์ œ์–ด ํ•˜๋Š”๊ฒƒ์„ ๋ฐ์ดํ„ฐ ์€๋‹‰(Data Higing), ์ •๋ณด ์€๋‹‰(Information Hiding)์ด๋ผ๊ณ  ๋ถ€๋ฆ„

์ƒ์„ฑ์ž (P. 25)

  • ์กฐ๊ฑด : ํด๋ž˜์Šค์™€ ๋™์ผํ•œ ์ด๋ฆ„, ๋ฐ˜ํ™˜ํ˜•์ด ์—†์–ด์•ผํ•จ
  • ์ •์˜ ํ•˜์ง€ ์•Š์„ ์‹œ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋””ํดํŠธ ์ƒ์„ฑ์ž๋ฅผ ์‚ฝ์ž…ํ•จ

์†Œ๋ฉธ์ž (P.25)

  • ์กฐ๊ฑด : ํด๋ž˜์Šค์™€ ๋™์ผํ•œ ์ด๋ฆ„, ๋ฐ˜ํ™˜ํ˜•์ด ์—†์–ด์•ผํ•จ, ์†Œ๋ฉธ์ž ์•ž์— '~'๊ฐ€ ์žˆ์–ด์•ผํ•จ
  • ๊ฐ์ฒด๊ฐ€ ์†Œ๋ฉธ๋  ๋•Œ ํ˜ธ์ถœ
  • virtual์ด ๋ถ™์œผ๋ฉด ๊ฐ€์ƒ ์†Œ๋ฉธ์ž -> ์ž์‹ ๊ฐ์ฒด๊ฐ€ ํŒŒ๊ดด์‹œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์†Œ๋ฉธ์ž๋ฅผ ํ˜ธ์ถœํ•จ
  • ์ƒ์„ฑ์ž์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†์Œ
  • ์ •์˜ ํ•˜์ง€ ์•Š์„ ์‹œ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋””ํดํŠธ ์†Œ๋ฉธ์ž๋ฅผ ์‚ฝ์ž…ํ•จ

๊ฐ€์ƒํ•จ์ˆ˜ (P. 28)

  • ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋ฅผ ์ž์‹ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜์—์„œ ์žฌ์ •์˜ ๊ฐ€๋Šฅํ•จ
  • ํ•˜์ง€๋งŒ ๊ฐ•์ œ๋Š” ์•„๋‹˜

์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜ (P.28)

  • ์ž์‹ ํด๋ž˜์Šค์—์„œ ๊ผญ ์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ ์žฌ์ •์˜ ํ•ด์•ผํ•จ
  • ์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค๋Š” '์ถ”์ƒ ํด๋ž˜์Šค'๊ฐ€ ๋˜์–ด ๋™์  ํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅ ํ•ด์ง
  • ํ•จ์ˆ˜ ๋์— = 0์„ ๋ถ™์—ฌ์ฃผ๋ฉด๋จ
  • Ex. void init() = 0;

์˜ˆ์™ธ์ฒ˜๋ฆฌ (P.29)

  • try {} : ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•  ๋ถ€๋ถ„์„ ๊ฐ์Œˆ
  • catch {} : ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œ ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ์Œˆ
  • throw : catch์˜ ์ธ์ž๊ฐ’์„ ๋˜์ง

์ƒ์† (P.29)

  • ํด๋ž˜์Šค๋ช… ์˜†์— ':'๋ฅผ ๋ถ™์ด๊ณ  ์ ‘๊ทผ ์ œํ•œ์ž์™€ ํด๋ž˜์Šค๋ช…์„ ๋ถ™์ด๋ฉด ๋จ
  • ์ƒ์†๊ณผ ์ ‘๊ทผ ์ง€์‹œ์ž์˜ ์—ฐ๊ด€์„ฑ์€ ์—ฌ๊ธฐ์ฐธ๊ณ ํ•˜์…ˆ ์“ฐ๋ฉด ๋„ˆ๋ฌด ๊ธธ์–ด์ง

ํ•จ์ˆ˜ ๋’ค์˜ const (P.32)

  • ๊ทธ ํ•จ์ˆ˜์— ์†ํ•˜๋Š” ๊ฐ์ฒด or ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€

    class Test { private: int _value = 1;

    public:
    int getValue() const
    {
      //\_value = 2 -> ์—๋Ÿฌ
      return \_value;
    }
    

    };

์ •๋ฆฌ (P.36)

  • C++๋Š” ์œˆ๋„์šฐ์™€ Xbox360 ๊ธฐ๋ฐ˜์˜ ์ƒ์šฉ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์ด๋‹ค.
  • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๋น„์ฃผ์–ผ C++์™€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ DirectX API๋Š” ์ค‘์š”ํ•œ ๋ฐ‘์ฒœ ๊ธฐ์ˆ ์ด๋‹ค.
  • ์ฑ…์— ๋‚˜์™€ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์˜ ์ˆ˜์ค€์€ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ดํ•ด์™€ ๋”๋ถˆ์–ด C++, C, Java์–ธ์–ด์— ๋Œ€ํ•œ ํ›Œ๋ฅญํ•œ ์ง€์‹์ด ํ•„์š”ํ•˜๋‹ค.
  • ์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ ์ƒ์šฉ ๊ฒŒ์ž„์€ ๊ฒŒ์ž„ ์—”์ง„์„ ์‚ฌ์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ์ฑ…์„ ์ฝ์œผ๋ฉด์„œ ๊ฒŒ์ž„ ์—”์ง„์„ ๋งŒ๋“ค์–ด ๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค.

์•„๋‹ˆ ์”จ1๋ฐœ ๋ณ‘์‹ ๋“ค์ด ์ฑ…์— ์ข†๊ฐ™์ด ์ด์ƒํ•œ๊ฑฐ ๋ฐ–์— ์•ˆ์จ๋†ˆ;;

๋ณต์Šต๋ฌธ์ œ (P.37)

  1. 2D ์ปดํ“จํ„ฐ ๊ฒŒ์ž„์˜ ์ข…๋ฅ˜๋ฅผ ๋‘ ๊ฐ€์ง€๋งŒ ๋งํ•˜๋ผ : ํผ์ฆ๊ฒŒ์ž„, ํƒ€์ผ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„
  2. API๋ž€ ๋ฌด์—‡์ธ๊ฐ€? : Application Programming Interface
  3. ๊ฒŒ์ž„์„ ๋งŒ๋“ค ๋•Œ DirectX๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์žฅ์ ์€ ๋ฌด์—‡์ธ๊ฐ€? : ๊ธฐ์กด ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„ ์œˆ๋„์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.(?)
  4. ์ตœ์‹  ๊ฒŒ์ž„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์•„์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” DirectX API๋Š” ๋ฌด์—‡์ธ๊ฐ€? : XInput
  5. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ผ : ํด๋ž˜์Šค์˜ ์„ ์–ธ์œผ๋กœ ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง„ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ์ฒด์ž„
  6. ํด๋ž˜์Šค์˜ private๋ถ€๋ถ„์— ์„ ์–ธ๋ผ ์žˆ๋Š” ํ•ญ๋ชฉ์€ ์–ด๋””์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? : ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ
  7. ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” C++์—ฐ์‚ฐ์ž๋Š” ๋ฌด์—‡์ธ๊ฐ€? : ๊ฐ„์ ‘๋ฉค๋ฒ„์ฐธ์กฐ์—ฐ์‚ฐ์ž(->)
  8. ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์˜ ๋™์ž‘ ์›๋ฆฌ๋Š” ๋ฌด์—‡์ธ๊ฐ€? : throw๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋ฉด, std::exception์„ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ ๋ฐ›์€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•จ
  9. WinMerge ํ”„๋กœ๊ทธ๋žจ์€ ๋ฌด์Šจ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? : ๊ฐ ํŒŒ์ผ์˜ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์‰ฌ์›€, ๋ฒ„์ „๊ด€๋ฆฌํˆด
  10. ์ปดํ“จํ„ฐ ํŒŒ์ผ์„ ๋ฐฑ์—…ํ•˜๋Š” ๊ฒƒ์ด ์™œ ์ค‘์š”ํ•œ๊ฐ€? : ๋‹น์—ฐํ•œ๊ฑธ ๋ญ˜ ๋ฌผ์–ด

์—ฐ์Šต๋ฌธ์ œ (P.37)

  1. ๊ฒŒ์ž„ ์—”์ง„์˜ ๋ชฉ์ ์„ ์„ค๋ช…ํ•˜๋ผ. : ์ƒ์šฉ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•˜์—ฌ
  2. ์—ฌ๋Ÿฌ๋ถ„์ด ์ฆ๊ฒผ๋˜ 2D ๊ฒŒ์ž„ ์ค‘ ์ผ๋ถ€๋ฅผ ์„ค๋ช…ํ•˜๋ผ. : ์ด๋ž˜์„œ
  3. ์—ฌ๋Ÿฌ๋ถ„์ด ๋งŒ๋“ค๊ณ  ์‹ถ์€ 2D ๊ฒŒ์ž„์„ ์„ค๋ช…ํ•˜๋ผ. : ์ด์ฑ…์ด
  4. ๊ฒŒ์ž„์„ ์žฌ๋ฐŒ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์š”์†Œ์—๋Š” ์ฃผ๋กœ ๋ฌด์—‡์ด ์žˆ๋Š”๊ฐ€? : ์ข†๋ณ‘์‹  ์ฑ…์ธ๊ฑฐ์ž„

WinAPI๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด includeํ•ด์•ผํ•˜๋Š” ํ—ค๋”ํŒŒ์ผ (P.44)

  • windows.h

WinMainํ•จ์ˆ˜ (P.43 ~ 45)

  • ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ main์ด WinMainํ•จ์ˆ˜์ด๋‹ค.
  • ๋ฐ˜ํ™˜ํ˜•์€ int์ž„ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์€ wParam ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ €์žฅ๋ผ ์žˆ๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ๋ฉ”์„ธ์ง€ ๋ฃจํ”„ ์ง„์ž… ์ „์— WinMain์ด ์ข…๋ฃŒ๋˜๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•จ
  • ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค
    • hInstance : ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ด€ํ•œ ํฌ์ธํ„ฐ๋‹ค. ์–ด๋Š ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ˜ธ์ถœ๋๋Š”์ง€ ์‹๋ณ„ํ•ด์•ผ ํ•˜๋Š” ์ผ๋ถ€ ์œˆ๋„์šฐ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.
    • hPrevInstance : ํ•ญ์ƒ NULL์ด๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ ์œˆ๋„์šฐ ํ˜ธํ™˜์„ฑ๋งŒ์„ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ์“ธ๋ชจ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋‹ค.
    • lpCmdLine : ์ปค๋งจ๋“œ๋ผ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•ด NULL๋กœ ๊ฟ‘๋„ˆ๋ˆˆ ๋ฌธ์ž์—ด์šธ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์ด๋‹ค. ์ปค๋งจ๋“œ๋ผ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋  ๋•Œ ์ „๋‹ฌ๋˜๋Š” ๋‹จ์–ด๋‚˜ ๊ธฐํ˜ธ๋‹ค.
    • mCmdShow : ์œˆ๋„์šฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ค„ ๊ฒƒ์ธ์ง€ ์„ค์ •ํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์œˆ๋„์šฐ์˜ ๋ชจ์Šต์„ ์ œ์–ดํ•˜๋Š” ๋ฐ๋Š” ์œ„์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์€ ์•ˆ์”€

Windowํด๋ž˜์Šค(WNDCLASSEX) ๊ตฌ์กฐ์ฒด ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค (P.47)

  • cbSize : ๊ตฌ์กฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. (์ฃผ๋กœ sizeof(๊ตฌ์กฐ์ฒด)๋กœ ๋Œ€์ž…ํ•จ)
  • style : ์œˆ๋„์šฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•ด ์œˆ๋„์šฐ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ์ •์˜ํ•œ๋‹ค. ์Šคํƒ€์ผ์€ '|'์ธ or์—ฐ์‚ฐ์œผ๋กœ ๊ฒฐํ•ฉํ•œ๋‹ค.
  • lpfnWndProc : ์œˆ๋„์šฐ์— ๋ณด๋‚ธ ๋ฉ”์„ธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋‹ค.
  • cbClsExtra : Windowํด๋ž˜์Šค๋ฅผ ์œ„ํ•ด ์‹œ์Šคํ…œ์—์„œ ํ™•๋ณดํ•ด์•ผ ํ•˜๋Š” ์—ฌ๋ถ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง€์ •ํ•œ๋‹ค.
  • hInstance : ํด๋ž˜์Šค๋ฅผ ๋“ฑ๋กํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹๋ณ„ํ•œ๋‹ค
  • hIcon : ์œˆ๋„์šฐ์—์„œ ์‚ฌ์šฉํ•  ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์ง•ํ•˜๋Š” ํฐ ์•„์ด์ฝ˜์„ ์ •์˜ํ•œ๋‹ค.
  • hCursor : ์œˆ๋„์šฐ์—์„œ ์‚ฌ์šฉํ•  ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ์ •์˜ํ•œ๋‹ค.
  • hbrBackground : ์œˆ๋„์šฐ์˜ ๋ฐฐ๊ฒฝ์„ ์ฑ„์šฐ๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ƒ‰, ํŒจํ„ด์„ ์ •์˜ํ•จ
  • lpszMenuName : ์Šค์Šค๋กœ ์ •์˜ํ•˜์ง€ ์•Š๋Š” ์œˆ๋„์šฐ์˜ ๊ธฐ๋ณธ ๋ฉ”๋‰ด๋ฅผ ์ •์˜ํ•œ๋‹ค.
  • hIconsm : ์œˆ๋„์šฐ์˜ ์ œ๋ชฉ ํ‘œ์‹œ์ค„๊ณผ ์‹œ์ž‘ ๋ฉ”๋‰ด์— ์‚ฌ์šฉํ•  ์ž‘์€ ์•„์ด์ฝ˜์„ ์ •์˜ํ•œ๋‹ค.
  • RegisterClassEx : RegisterClassEx()๋ฅผ ํ˜ธ์ถœํ•ด ํด๋ž˜์Šค๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.

Window์ƒ์„ฑ 5 ๋‹จ๊ณ„

  1. WinClass ์ƒ์„ฑ
  2. WinClass๋“ฑ๋ก (RegisterClassEx)
  3. CreateWindow
  4. ShowWindow
  5. ๋ฉ”์„ธ์ง€ ๋ฃจํ”„

์œˆ๋„์šฐ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์„ฑ ํ•จ์ˆ˜

  • CreateWindow() : ์–‘์Œค์ด ๊ฑ ๊ทธ๋ ‡๋‹ค๊ณ  ํ–ˆ์Œ

CreateWindow ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค (P.49)

  • lpClassName : Windowํด๋ž˜์Šค ์ด๋ฆ„ ๋“ฑ NULL๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋‹ค. lpClassName์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์€ CreateWindowClassํ•จ์ˆ˜์˜ lpszClassName๋ฉค๋ฒ„์—์„œ ์‚ฌ์šฉํ•œ ์ด๋ฆ„๊ณผ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
  • lpWindowName : ์œˆ๋„์šฐ์˜ ์ œ๋ชฉ ํ‘œ์‹œ์ค„์— ๋‚˜ํƒ€๋‚ผ ํ…์ŠคํŠธ๋‹ค.
  • dsStyle : ์ƒ์„ฑํ•  ์œˆ๋„์šฐ์˜ ์Šคํƒ€์ผ์ด๋‹ค.
    • WS_OVERLAPPEDWINDOW : ์ปจํŠธ๋กค์ด ์žˆ๊ณ  ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋Š” ์œˆ๋„์šฐ
    • WS_OVERLAPPED : ์ปจํŠธ๋กค์ด ์—†๊ณ  ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋œ ์œˆ๋„์šฐ, ์œˆ๋„์šฐ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„์„ ๋งŒ๋“ค ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•จ
    • WS_EX_TOPMOST | WS_VISIBLE | WS_POPUP : ์Šคํƒ€์ผ 3๊ฐœ๋ฅผ |๋กœ ์—ฐ๊ฒฐ, ๊ฒŒ์ž„์„ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ€์ผ
  • x, y : ์œˆ๋„์šฐ ์™ผ์ชฝ ์œ„ ๋ชจ์„œ๋ฆฌ์˜ ์ขŒํ‘œ๋‹ค.
  • nWidth : ์œˆ๋„์šฐ์˜ ํ”ฝ์…€ ๋‹จ์œ„ ํญ์ด๋‹ค.
  • nHeight : ์œˆ๋„์šฐ์˜ ํ”ฝ์…€ ๋‹จ์œ„ ๋†’์ด๋‹ค.
  • hWndParent : ๋ถ€๋ชจ ์œˆ๋„์šฐ
  • hMenu : ์œˆ๋„์šฐ ๋ฉ”๋‰ด
  • hInstance : Windowํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹๋ณ„์ž
  • ipParam : ์ถ”๊ฐ€ ์œˆ๋„์šฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋‹ค.

ShowWindow (P.51)

  • ShowWindow(ํ•ธ๋“ค๋Ÿฌ, ์ปค๋งจ๋“œ);
  • ์œˆ๋„์šฐ๋ฅผ ํ‘œ์‹œํ•จ

๋ฉ”์„ธ์ง€ ๋ฃจํ”„ (P.52)

  • ์œˆ๋„์šฐ๋Š” ๋ฉ”์‹œ์ง€ ์ „์†ก์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ๊ณผ ์˜์‚ฌ์†Œํ†ตํ•จ

    • Ex. ๋งˆ์šฐ์Šค ์›€์ง์ž„, ํ‚ค ๋ˆ„๋ฆ„, ์œˆ๋„์šฐ์—์„œ ๋ณด๋‚ด๋Š” ๋ช…๋ น
  • WM_QUIT ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์„ ๋•Œ ๊นŒ์ง€ ๋ฃจํ”„๋ฅผ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•จ

  • WinMain์ด ์‹œ์Šคํ…œ์œผ๋กœ ๋ฐ˜ํ™˜๋  ๋•Œ ๋ฐ˜ํ™˜ ๊ฐ’์€ WM_QUIT ๋ฉ”์‹œ์ง€์˜ wParam ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์ด ๋œ๋‹ค.

      int done = 0;
      while(!done)
      {
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
          if (msg.message == WM_QUIT)
            done = 1;
          TranslateMessage(&msg);
          DispatchMessage(&msg);
        }
      }
    

WinProcํ•จ์ˆ˜ (P.53)

  • ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜์ž„.

  • ํ•จ์ˆ˜์˜ ์ด๋ฆ„์€ CreateWindowClassํ•จ์ˆ˜์˜ WNDCLASSEX๊ตฌ์กฐ์ฒด ์•ˆ์— ๋ช…์‹œ๋œ ์ด๋ฆ„๊ณผ ๋™์ผํ•ด์•ผํ•จ

      switch(msg)
      {
        case WM_DESTROY:
          PostQuitMessage(0);
          return 0;
      }
      return DefWindowProc(hwnd, msg, wParam, lParam)
    

ํด๋ž˜์Šค ๊ตฌ์กฐ์ฒด๋ฅผ ๋“ฑ๋กํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ (P.47)

  • RegisterClassEx : RegisterClassEx()๋ฅผ ํ˜ธ์ถœํ•ด ํด๋ž˜์Šค๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์—๋Ÿฌ ๋ฐœ์ƒ์‹œ 0์„ ๋ฆฌํ„ดํ•จ

๋””๋ฐ”์ด์Šค ์ปจํ…์ŠคํŠธ(DC) (P.58)

  • ์œˆ๋„์šฐ๋Š” ๋‹ค์–‘ํ•œ ํ‘œ์‹œ ์žฅ์น˜๋‚˜ ์ถœ๋ ฅ ์žฅ์น˜์™€ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๊ณ„๋ผ ์žˆ๋‹ค.
  • ์œ„์™€ ๊ฐ™์€ ์žฅ์น˜๋…๋ฆฝ์„ฑ์ด ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค์–‘ํ•œ ์ถœ๋ ฅ ์žฅ์น˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • ๊ทธ ์žฅ์น˜๋…๋ฆฝ์„ฑ์˜ ํ•ต์‹ฌ์ด GDI(Graphics Device Interface)๋‹ค. GDI๋Š” DLL(Dynamic Link Library)๋กœ, ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„์™€ ํ•จ๊ป˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ”„๋ฆฐํ„ฐ๋‚˜ VGAํ™”๋ฉด์— ๊ทธ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • DC๋Š” Graphics๊ฐ์ฒด์™€ ์†์„ฑ์„ ์ •์˜ํ•˜๋Š” ๊ตฌ์กฐ์ฒด์ด๋‹ค. ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ๋Š” ์œˆ๋„์šฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ DC๋ฅผ ๋งŒ๋“ ๋‹ค.

WM_CHAR ๋ฉ”์„ธ์ง€ (P.58)

  • ์œˆ๋„์šฐ๋Š” ํ‚ค ๋ˆ„๋ฆ„๊ณผ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ„

  • ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด WM_CHAR๋ฅผ ์‚ฌ์šฉํ•จ, ์ฝ๊ธฐ ์œ„ํ•ด์„œ๋Š” WinProcํ•จ์ˆ˜์— WM_CHAR๋ฉ”์„ธ์ง€ ํ•ธ๋“ค๋Ÿฌ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด๋จ

      case WM_CHAR
      {
        switch(wParam)
        {
          case 0x08: //๋ฐฑ์ŠคํŽ˜์ด์Šค
          case 0x09: //ํƒญ
          case 0x0A: //๋ผ์ธํ”ผ๋“œ
          ...
        }
      }
    

ํ‚ค๋ณด๋“œ (P.58 ~ 69)

  • WM_CHAR์™€ VK(๊ฐ€์ƒํ‚ค, Virtual Key)๊ฐ€ ์žˆ์Œ
  • WM_KEYDOWN : ํ‚ค๊ฐ€ ๋ˆ„๋ฅด๋Š” ์ƒํƒœ์ธ์ง€
  • WM_KEYUP : ํ‚ค๊ฐ€ ์•ˆ๋ˆŒ๋ฆฐ ์ƒํƒœ์ธ์ง€
  • VK(๊ฐ€์ƒ ํ‚ค ์ฝ”๋“œ)๋Š” ์œˆ๋„์šฐ์— ์˜ํ•ด ํ• ๋‹น๋จ
    • ํ‚ค๋ณด๋“œ์—์„œ ๊ฐ ํ‚ค๋Š” ํ• ๋‹น๋œ ํ‚ค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค.

    • WinUser.hํŒŒ์ผ์— ์กด๋‚˜ ๋งŽ์Œ

      if (vkKeys[VK_RIGHT])
        // ํ˜„์žฌ ์˜ค๋ฅธ์ชฝ ํ™”์‚ด ํ‚ค๋ฅผ ๋ˆŒ๋ €๋‹ค.
      
  • GetAsyncKeyState : ์‚ฌ์šฉํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌ์ปค์Šค๋ฅผ ๊ฐ–์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ํ‚ค๋ณด๋“œ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ฝ์Œ -> ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•จ

๋ฌธ์ž (P.63)

  • TextOut(ํ•ธ๋“ค๋Ÿฌ, ์œ„์น˜X, ์œ„์น˜Y, ๋ฌธ์ž, ํฌ๊ธฐ) : ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•จ

      case WM_PAINT:
        hdc = BeginPaint(hwnd, &ps);
        GetClientRect(hwnd, &rect);
        TextOut(hdc, rect.right / 2, rect.left / 2, &ch, 1);
        EndPoint(hwnd, &ps);
        return 0;
    

๊ฑ ์•Œ์•„๋‘ฌ์•ผํ•  ํ•จ์ˆ˜๋“ค

  • PeekMessage() : ๋ฉ”์„ธ์ง€๊ฐ€ ์žˆ๋“  ์—†๋“  ๋ฆฌํ„ดํ•จ
  • GetMessage() : ๋ฉ”์„ธ์ง€๊ฐ€ ์—†๋‹ค๋ฉด ๋ฉ”์„ธ์ง€๊ฐ€ ์˜ฌ ๋•Œ ๊นŒ์ง€ ๋Œ€๊ธฐํ•จ (๋™์ ์ธ ๊ฒŒ์ž„์—์„œ๋Š” ์ข‹์€ ์„ ํƒ์ด ์•„๋‹˜)
  • TranslateMessage() : ๊ฐ€์ƒ ํ‚ค ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌธ์ž ๋ฉ”์‹œ์ง€๋กœ ๋ณ€ํ™˜
  • DispatchMessage() : ์‹œ์Šคํ…œ ๋ฉ”์‹œ์ง€ ํ์—์„œ ๊บผ๋‚ธ ๋ฉ”์‹œ์ง€๋ฅผ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜(WinProc)๋กœ ์ „๋‹ฌํ•œ๋‹ค.

๋ฎคํ…์Šค (P.70)

  • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์†Œ์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋‹ค.

  • CreateMutexํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด ์ƒ์„ฑ๊ฐ€๋Šฅํ•˜๋‹ค.

      bool AnotherInstance()
      {
        HANDLE ourMutex;
        ourMutex = CreateMutex(NULL, true, "Use_a_duffernt_string_here_for_each_program_48161_XYZZY");
        if (GetLastError() == ERROR_ALREADY_EXISTS)
          return true;
        return false;
      }
    

์œˆ๋„์šฐ์—์„œ์˜ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น (P.71)

  • ํฌ๊ฒŒ ํƒ€์ž„ ์Šฌ๋ผ์ด์‹ฑ or ์„ ์ ํ˜• ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์ด ์žˆ๋‹ค.
  • ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค : ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ์•„์ฃผ ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ์‹คํ–‰ํ•˜๊ณ  ์ด ๊ณผ์ •์„ ๋ชจ๋“  ์Šค๋ ˆ๋“œ์— ๋ฐ˜๋ณต
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์Šฌ๋ผ์ด์Šค ์‹œ๊ฐ„์€ 1/20๋ฐ€๋ฆฌ์ดˆ
  • ์ผ๋ฐ˜์ ์ธ ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์—์„œ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ์ˆ˜์‹ญ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฏ€๋กœ, ์„ ์ ํ˜• ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์€ ์—ฌ์ „ํžˆ ํ•„์š”ํ•จ
  • ์œˆ๋„์šฐ์˜ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ํŠน์ง•์€ ์งง์€ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค์—์„œ๋งŒ ์‹คํ–‰์ด ํ—ˆ์šฉ๋จ
  • ๋‹ค์Œ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ์— ๋Œ€ํ•œ ๋งค์šฐ ์ œํ•œ๋œ ํ†ต์ œ๋ฅผ ๊ฐ€์ง

2์žฅ ์ •๋ฆฌ (P.72)

  • WinMain์ด ์œˆ๋„์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘์ ์ž„
  • Winodw ํด๋ž˜์Šค ๋“ฑ๋ก ๋ฐฉ๋ฒ•
  • WNDCLASSEX ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•ด์„œ
  • CreateWindowํ•จ์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜
  • ์œˆ๋„์šฐ ๋ฉ”์„ธ์ง€ ๋ฃจํ”„
  • ์œˆ๋„์šฐ ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ WinProc์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ
  • ๋ฌธ์ž ์ž…๋ ฅ์„ ์œ„ํ•œ WM_CHAR์— ๋Œ€ํ•œ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›€
  • ํ‚ค๋ณด๋“œ๋ฅผ ๊ฒŒ์ž„ ์ปจํŠธ๋กค๋Ÿฌ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด WM_KEYDOWN, WM_KEYUP์„ ์‚ฌ์šฉํ•จ
  • ํ˜„์žฌ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‹คํ–‰์ค‘์ธ ์ธ์Šคํ„ด์Šค๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑ
  • ์œˆ๋„์šฐ๋Š” ์งง์€ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค์— ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์„ ์‚ฌ์šฉํ•จ

๋ณต์Šต๋ฌธ์ œ

  1. ์œˆ๋„์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘์ ์€? : WinMain
  2. WNDCLASSEX ๊ตฌ์กฐ์ฒด์—์„œ lpfnWndProc๋ฉค๋ฒ„์˜ ์—ญํ• ์€ ? : ์œˆ๋„์šฐ์— ๋ณด๋‚ธ ๋ฉ”์„ธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋‹ค.
  3. CreateWindow ํ•จ์ˆ˜์˜ dsStyle๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’ ์ค‘ ์œˆ๋„์šฐ ๋ชจ๋“œ ๊ฒŒ์ž„์— ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์Šคํƒ€์ผ์€? : WS_OVERLAPPED
  4. dsStyle ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’ ์ค‘ ์ „์ฒด ํ™”๋ฉด ๊ฒŒ์ž„์— ์‚ฌ์šฉ๋˜๋Š” ์Šคํƒ€์ผ ๊ฐ’์€ ๋ฌด์—‡์ธ๊ฐ€? : WS_EX_TOPMOST | WS_VISIBLE | WS_POPUP
  5. hwnd๊ฐ€ NULL์ด๋ผ๋ฉด ๋‹ค์Œ if๋ฌธ์€ true, false์ค‘ ๋ฌด์—‡์„ ์ถœ๋ ฅํ•˜๋Š”๊ฐ€? : false
  6. ์œˆ๋„์šฐ๋Š” ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ์–ด๋–ป๊ฒŒ ์˜์‚ฌ์†Œํ†ต ํ•˜๋Š”๊ฐ€? : ๋ฉ”์‹œ์ง€ ์ „์†ก์„ ํ†ตํ•ด์„œ
  7. ๋ฉ”์„ธ์ง€ ๋ฃจํ”„๋Š” ์–ธ์ œ ๋๋‚˜๋Š”๊ฐ€? : WM_QUIT์ด ๋ฉ”์„ธ์ง€ํ์— ์กด์žฌํ•œ๋‹ค๋ฉด
  8. ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌด์‹œํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋Š”๊ฐ€? : ?
  9. WM_CHAR ๋ฉ”์‹œ์ง€๋Š” ์–ด๋””์— ์‚ฌ์šฉ๋˜๋Š”๊ฐ€? : ๋ฌธ์ž๋ฅผ ์ฝ์„ ๋•Œ
  10. ๊ฐ€์ƒ ํ‚ค ์ฝ”๋“œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? : ์œˆ๋„์šฐ์—์„œ ์ง์ ‘ ํ• ๋‹น๋œ ํ‚ค๋ณด๋“œ ๊ฐ ํ‚ค์— ํ• ๋‹น๋œ ์ฝ”๋“œ

์—ฐ์Šต๋ฌธ์ œ

  1. ๊ทธ๋ฆผ 2.1์— ์žˆ๋Š” 'Hello World'ํ”„๋กœ๊ทธ๋žจ์„ 'Hello World by:'๋’ค์— ์ž๊ธฐ ์ด๋ฆ„์ด ๋‚˜์˜ค๋„๋ก ์ˆ˜์ •ํ•˜๋ผ

     const char APP_TITLE[] = "Hello World by : Deokwon";
    
  2. ๋ฆฌ์ŠคํŠธ 2.14์—์„œ ์–ด๋–ค ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ์•ผ PC์Šคํ”ผ์ปค์—์„œ ๋น„ํ”„์Œ์ด ๋‚˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? : ๋ฐฑ์ŠคํŽ˜์ด์Šค, ํƒญ, ๋ผ์ธํ”ผ๋“œ, ์บ๋ฆฌ์ง€ ๋ฆฌํ„ด, ์ด์Šค์ผ€์ดํ”„

  3. ๊ทธ๋ฆผ 2.8์— ์žˆ๋Š” keyboard2 ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ด ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๋ผ

  • ๋™์‹œ์— ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ํ‚ค์˜ ๊ฐœ์ˆ˜๋Š”? : 6๊ฐœ
  • ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ‚ค ์กฐํ•ฉ์„ ๋‚˜์—ดํ•ด๋ณด๋ผ : ?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages