[MFC] dlg 사이즈 및 윈도우 최대, 최소화 관련해서 여쭤보겠습니다.. (완전 초보)

kik9459의 이미지

안녕하세요..
MFC 공부하고있는 학생입니다.

공부를 아무리 인터넷을 뒤져도 해결이 안돼는 부분이 있어서 이렇게 여쭤봅니다..

현재 MFC 프로젝트로 dlg 및 배경화면을 설정해놨는데

최대화 버튼을 누를시에 dlg 화면과 배경화면이 겹쳐보인다고 할까요..?

사진 첨부했습니다.. 혹시나 아시는분은 알려주시면 감사하겠습니다..!

File attachments: 
첨부파일 크기
Image icon 제목 없z음.png1.59 MB
shint의 이미지

1.
예제가 하나 있네요.
Bitmap Backgrounds For Dialog Boxes
https://www.codeproject.com/Articles/18967/Bitmap-Backgrounds-For-Dialog-Boxes
https://stackoverflow.com/questions/16462843/implementing-a-dialog-background-image

2.
InvalidateRect() 함수가 호출되면.

OnPaint() 함수가 호출되고.
화면 DC (Device Context) 에 그려 넣을겁니다.

3.
실행이 잘되는 책 예제소스를 참고 하시면 좋을겁니다.

4.
디버깅은 F9 F5 F10 F11 버튼으로 확인하실 수 있습니다.

TRACE() 함수는 255자를 넘을 경우. 오류가 발생할 수 있으니. 주의하시기 바랍니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

kik9459의 이미지

덕분에 해결했습니다... 감사합니다!
근데 다름이아니랑 이제 버튼 클릭시 새로운 Dlg 화면이 나오게 하려고 하는데, 버튼을 클릭하면 계속 튕기는 현상이 발생합니다... 어떻게 해결해야하는지 혹시 아시면 조언 좀 부탁드리겠습니다..!

shint의 이미지

Modal MFC
Modaless MFC 로 검색하시면. 모달과 모달리스 다이얼로그의 생성 방법이 보일겁니다.

MFC 와 Visual C++ 책에 잘 실행되는 예제소스가 있습니다.

http://ppjun.tistory.com/12
https://stackoverflow.com/questions/1225931/convert-a-modeless-dialog-to-modal-at-runtime
http://blog.naver.com/PostView.nhn?blogId=1004kiwoo&logNo=60102881574

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

kik9459의 이미지

해결했습니다!
근데 또 난관에 부딪혔는데 DrawText를 OnEraseBkgnd 함수에서 출력 했는데 Text가 계속 깜빡이는 현상이 발생하네요.. EraseBkgnd 말고 Paint에 했을 때는 더욱 더 심해졌었구요.. 혹시 해결 방법 아시는지요..?

shint의 이미지

//
1. SetBkMode() 로 글자의 배경을 투명하게 만드는 방법이 있습니다.
2. WS_EX_LAYERED WS_EX_TRANSPARENT 윈도우 다이얼로그에 속성을 확인해 봅니다.

//풀이 방법
1. InvalidateRect() OnEraseBkgnd() OnPaint() DrawText() 함수가 실행되는 순서를 확인
2. InvalidateRect() OnEraseBkgnd() OnPaint() DrawText() 각각에 함수와 더블 버퍼링'을 네이버와 구글에서 검색해봅니다.
3. 잘 실행되는 책 예제소스와 MSDN 을 참고합니다.
http://www.codeproject.com
http://www.codeguru.com
http://www.devpia.com
4. 각 함수에 인자값. 리턴값. 오류값을 확인해봅니다.

//더블 버퍼링
[winAPI] 더블버퍼링 - 깜빡임 없애기
http://alleysark.tistory.com/22

더블 버퍼링으로 화면 껌뻑임을 없애자
http://heart4u.co.kr/tblog/330

7. 더블 버퍼링
http://jhedde.tistory.com/entry/7-%EB%8D%94%EB%B8%94-%EB%B2%84%ED%8D%BC%EB%A7%81

MFC 더블버퍼링 그림 그리기 - 깜박임 제거 바탕화면 그리기 - 메모리 버퍼 이용 MFC VC++ / ■ 프로그램
http://blog.naver.com/PostView.nhn?blogId=dolicom&logNo=10071034119

API 더블버퍼링 기법
http://hardprogram.tistory.com/entry/API-%EB%8D%94%EB%B8%94%EB%B2%84%ED%8D%BC%EB%A7%81-%EA%B8%B0%EB%B2%95

API-더블 버퍼링
http://mrhook.co.kr/127

더블 버퍼링(double buffering)
http://adnoctum.tistory.com/149

[API] 더블 버퍼링
http://metalkim.tistory.com/301

//
Device Contexts
https://msdn.microsoft.com/en-us/library/azz5wt61.aspx

A device context is a Windows data structure containing information about the drawing attributes of a device such as a display or a printer. All drawing calls are made through a device-context object, which encapsulates the Windows APIs for drawing lines, shapes, and text. Device contexts allow device-independent drawing in Windows. Device contexts can be used to draw to the screen, to the printer, or to a metafile.

장치 컨텍스트는 디스플레이 또는 프린터와 같은 장치의 그리기 특성에 대한 정보가 들어있는 Windows 데이터 구조입니다. 모든 그리기 호출은 선, 도형 및 텍스트를 그리기위한 Windows API를 캡슐화하는 장치 컨텍스트 개체를 통해 이루어집니다. 장치 컨텍스트는 Windows에서 장치 독립적 그리기를 허용합니다. 장치 컨텍스트는 화면, 프린터 또는 메타 파일로 그리는 데 사용할 수 있습니다.

Device Context의 개념 + GetDC / ReleaseDC
http://diehard98.tistory.com/entry/Device-Context%EC%9D%98-%EA%B0%9C%EB%85%90-GetDC-ReleaseDC

//
OnEraseBkgnd

OnEraseBkgnd - 코드 프로젝트
https://www.codeproject.com/search.aspx?q=OnEraseBkgnd&x=12&y=3&sbo=kw

Using color gradients as backgrounds in your dialogs and views
https://www.codeproject.com/Articles/2413/Using-color-gradients-as-backgrounds-in-your-dialo

OnEraseBkgnd() 함수의 쓰임 [화면 깜빡임 방지]
http://jurang5.tistory.com/entry/OnEraseBkgnd-%ED%95%A8%EC%88%98%EC%9D%98-%EC%93%B0%EC%9E%84-%ED%99%94%EB%A9%B4-%EA%B9%9C%EB%B9%A1%EC%9E%84-%EB%B0%A9%EC%A7%80

CWnd::OnEraseBkgnd
https://msdn.microsoft.com/ko-kr/library/a0a52fkz.aspx

18장 깜빡임 방지
http://lazineer.tistory.com/45

[MFC] CWnd::Invalidate
http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=48

더블 버퍼링에 대해 문의드립니다
http://tipssoft.com/bulletin/board.php?bo_table=QnA&wr_id=19579

[MFC] OnEraseBkgnd 사용해서 배경화면 그리기
http://dreamchallenger.blogspot.kr/2013/01/mfc-onerasebkgnd.html

OnEraseBkgnd() 배경화면(Image bmp) & 속도향상
http://moguwai.tistory.com/entry/OnEraseBkgnd-%EB%B0%B0%EA%B2%BD%ED%99%94%EB%A9%B4Image-bmp-%EC%86%8D%EB%8F%84%ED%96%A5%EC%83%81

[MFC] Dialog 에서 배경색을 하얀색으로
http://egloos.zum.com/sehwa4444/v/2738890

How to call OnEraseBkgnd() to repaint the window in another function? (MFC)
https://stackoverflow.com/questions/40943521/how-to-call-onerasebkgnd-to-repaint-the-window-in-another-function-mfc

MFC 더블버퍼링 그림 그리기 - 깜박임 제거 바탕화면 그리기 - 메모리 버퍼 이용
http://m.blog.naver.com/dolicom/10071034119

//
DrawText SetBkMode Tranparent

윈도 모드시에 윈도 배경이 투명하게 비치게 할려면 ..
http://gpgstudy.com/forum/viewtopic.php?p=31362

Extended Window Styles
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ff700543(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/aa251511(v=vs.60).aspx

SetBkMode function
https://msdn.microsoft.com/ko-kr/library/windows/desktop/dd162965(v=vs.85).aspx

CDC::SetBkMode
https://msdn.microsoft.com/ko-kr/library/a3w1xce7.aspx

How to draw text with transparency using GDI?
https://stackoverflow.com/questions/42221322/how-to-draw-text-with-transparency-using-gdi

How to draw text with transparent background using c++/WinAPI?
https://stackoverflow.com/questions/12479386/how-to-draw-text-with-transparent-background-using-c-winapi

How to draw semi-transparent text on a graphics object?
https://stackoverflow.com/questions/2447180/how-to-draw-semi-transparent-text-on-a-graphics-object

How to draw text using CDC with transparent background on CBitmap?
https://stackoverflow.com/questions/7654958/how-to-draw-text-using-cdc-with-transparent-background-on-cbitmap

[win32 API/c++] Text on transparent backgound
https://www.gamedev.net/forums/topic/454940-win32-apic-text-on-transparent-backgound/

MFC/CDC] 텍스트 출력시 배경색상을 나오지 않게 하려면..
http://www.tipssoft.com/bulletin/board.php?bo_table=old_bbs&wr_id=203

MFC 에서 DC에 DrawText로 문자열 쓸 때 투명한 배경으로 글씨 쓰기
http://egloos.zum.com/junpp/v/2112648

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.