Programming/C Win32 MFC2017. 8. 21. 16:47
Posted by 구차니
Programming/C Win32 MFC2017. 8. 8. 22:07
Posted by 구차니
Programming/C Win32 MFC2017. 8. 7. 19:09

쓰레드 사용법

[링크 : http://blog.naver.com/myrinoa8/140129819777] 다이얼로그 변수/함수 사용하기

[링크 : http://dosnipe.tistory.com/20] 쓰레드 생성 AfxBeginThread

[링크 : http://blog.naver.com/mincheol9166/220718941148] 쓰레드 종료 SuspendThread


쓰레드에서 UpdateData() 오류시

간단하게 설명(?)하면 그러면 안되니까 SendMessage를 쓰레드에서 다이얼로그로 던져서 처리하도록 해라~

[링크 : http://blog.naver.com/pointer98/150043664789]

'Programming > C Win32 MFC' 카테고리의 다른 글

unsigned char [] -> LPCSTR  (0) 2017.08.21
MFC 타이머  (0) 2017.08.08
MFC 창 상태 확인하기(SW_SHOW/SW_HIDE)  (0) 2017.08.07
MFC 다이얼로그 rich edit 사용하기  (0) 2017.08.07
MFC 모달리스(modaless) 다이얼로그  (0) 2017.08.01
Posted by 구차니
Programming/C Win32 MFC2017. 8. 7. 11:24

다이얼로그를 ShowWindow(SW_SHOW)를 통해 표시한 경우

이에 대한 상태를 받아 오려면 꽤나 귀찮아 지네..

간단하게 GetShowWindow()라던가 GetWindowStatus() 이런게 있으면 참 좋을텐데..


if (!IsWindowVisible(hWnd))

    swState = SW_HIDE;

else

if (IsIconic(hWnd))

    swState = SW_MINIMIZE;

else

if (IsZoomed(hWnd))

    swState = SW_MAXIMIZE;

else

{

    // not hidden, minimized or zoomed, so we are a normal visible window

    // last ShowWindow flag could have been SW_RESTORE, SW_SHOW, SW_SHOWNA, etc

    // no way to tell

    swState = SW_SHOW;

[링크 : https://stackoverflow.com/questions/28266448/get-the-last-showwindow-state-for-a-window-in-winapi]

[링크 : https://stackoverflow.com/questions/1432336/how-to-find-a-windows-sw-show-sw-hide-status]



+

귀찮으니 단순화 하기 ㅋㅋ

  if(pDlg)

{

if(pDlg->IsWindowVisible())

pDlg->ShowWindow(SW_HIDE);

else pDlg->ShowWindow(SW_SHOW);

}


Posted by 구차니
Programming/C Win32 MFC2017. 8. 7. 10:10

희한하게 Rich edit만 추가하면 빌드는 되는데 실행하면 깜깜 무소식인 문제가 있어서

확인을 해보니 DoModal() 에서 죽어버려서 미궁이 빠진적이...


아무튼 오늘 문득 생각이 나서 찾아보니

InitInstance() 에서

AfxInitRichEdit(); 

를 해주어야 문제없이 작동됨을 확인!


BOOL CtestApp::InitInstance()

{

// 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을

// 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다.

// InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다.

INITCOMMONCONTROLSEX InitCtrls;

InitCtrls.dwSize = sizeof(InitCtrls);

// 응용 프로그램에서 사용할 모든 공용 컨트롤 클래스를 포함하도록

// 이 항목을 설정하십시오.

InitCtrls.dwICC = ICC_WIN95_CLASSES;

InitCommonControlsEx(&InitCtrls);


CWinApp::InitInstance();



AfxEnableControlContainer();

AfxInitRichEdit();


// 대화 상자에 셸 트리 뷰 또는

// 셸 목록 뷰 컨트롤이 포함되어 있는 경우 셸 관리자를 만듭니다.

CShellManager *pShellManager = new CShellManager;


// 표준 초기화

// 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면

// 아래에서 필요 없는 특정 초기화

// 루틴을 제거해야 합니다.

// 해당 설정이 저장된 레지스트리 키를 변경하십시오.

// TODO: 이 문자열을 회사 또는 조직의 이름과 같은

// 적절한 내용으로 수정해야 합니다.

SetRegistryKey(_T("로컬 응용 프로그램 마법사에서 생성된 응용 프로그램"));


CtestDlg dlg;

m_pMainWnd = &dlg;

INT_PTR nResponse = dlg.DoModal();

if (nResponse == IDOK)

{

// TODO: 여기에 [확인]을 클릭하여 대화 상자가 없어질 때 처리할

//  코드를 배치합니다.

}

else if (nResponse == IDCANCEL)

{

// TODO: 여기에 [취소]를 클릭하여 대화 상자가 없어질 때 처리할

//  코드를 배치합니다.

}


// 위에서 만든 셸 관리자를 삭제합니다.

if (pShellManager != NULL)

{

delete pShellManager;

}


// 대화 상자가 닫혔으므로 응용 프로그램의 메시지 펌프를 시작하지 않고  응용 프로그램을 끝낼 수 있도록 FALSE를

// 반환합니다.

return FALSE;

}

 



[링크 : http://ospace.tistory.com/171]

Posted by 구차니
Programming/C Win32 MFC2017. 8. 1. 14:55

쓸일이 있어서 해보는데.. 당연한 내용이겠지만...

포인터가 아니라 변수로 만들면 scope를 벗어 나면서 바로 해당 클래스가 파괴되면서 창이 닫힌다.

그런 이유로 new를 이용해서 생성을 해주어야 한다.


void CtestDlg::OnBnClickedButton12()

{

// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.

// CFileUploader dlg;

// dlg.Create(IDD_UPLOAD_DIALOG, this);

// dlg.ShowWindow(SW_SHOW);


CFileUploader *pDlg =  new CFileUploader();

if(pDlg)

{

pDlg->Create(IDD_UPLOAD_DIALOG);

pDlg->ShowWindow(SW_SHOW);

}


그나저나.. 그냥 저렇게 해두니 버튼 누를때 마다 창이 증식하네 ㅋㅋㅋ


[링크 : http://lapislazull.tistory.com/80]

[링크 : http://j07051.tistory.com/107]

[링크 : http://heart4u.co.kr/tblog/318]


+

2017.08.07

모달리스 child dialog와 부모 통신하기

[링크 : http://blog.daum.net/finalz84/173]

[링크 : http://blog.naver.com/xtelite/50022212767]

Posted by 구차니
Programming/C Win32 MFC2017. 8. 1. 14:31

테스트 프로그램 만드는데 분석 내용을

좀더 꾸며서 해보겠다는 욕심으로

모양만 만들때 richedit을 넣어서 했더니

MFC 다이얼로그가 안뜬다 -ㅁ-?


먼가 해서 하나씩 뒤져보니

메인 다이얼로그를 doModal() 할때 죽어 버리는데

혹시나 해서 기존 버전들과 비교를 해보니 richedit이 하나 추가된게 발견!

설마하고 rc 파일에서 해당 내용만 삭제하니 문제없이 실행!


뭐야 -_-???

VS2010 버그인가?

'Programming > C Win32 MFC' 카테고리의 다른 글

MFC 다이얼로그 rich edit 사용하기  (0) 2017.08.07
MFC 모달리스(modaless) 다이얼로그  (0) 2017.08.01
MFC 다이얼로그 - 탭  (0) 2017.07.21
MFC 다중문서 / 단일문서  (0) 2017.07.21
MFC 다이얼로그 숨기기  (0) 2017.07.13
Posted by 구차니
Programming/C Win32 MFC2017. 7. 21. 18:46

직접 구현을 해본적이 없어서 신기해서 조사


[링크 : http://jaiyun.tistory.com/5]

Posted by 구차니
Programming/C Win32 MFC2017. 7. 21. 18:42

항상 다이얼로그로만 짜봐서

한번 다른 방법도 해봐야지..


예전에 영상처리 프로그램 학교에서 배울때 MDI로 짠적은 있는데

그냥 책보고 따라친 수준이라 다시 봐야 할듯.. 기억도 안남 ㅠㅠ


[링크 : http://blog.naver.com/chaose21c/150133862259]

[링크 : http://nenunena.tistory.com/66]

[링크 : http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=534]

'Programming > C Win32 MFC' 카테고리의 다른 글

MFC에서 richedit 때문에 실행이 안돼?  (0) 2017.08.01
MFC 다이얼로그 - 탭  (0) 2017.07.21
MFC 다이얼로그 숨기기  (0) 2017.07.13
2차원 배열에 대한 포인터  (0) 2017.06.21
slider control / settic  (0) 2017.06.12
Posted by 구차니
Programming/C Win32 MFC2017. 7. 13. 14:09

아직은 구현해보지 않았음..

조만간 쓸 예정


[링크 : https://linsoo.co.kr/archives/13725]

  [링크 : http://phiru.tistory.com/128]

  [링크 : http://frostguy.tistory.com/39]


'Programming > C Win32 MFC' 카테고리의 다른 글

MFC 다이얼로그 - 탭  (0) 2017.07.21
MFC 다중문서 / 단일문서  (0) 2017.07.21
2차원 배열에 대한 포인터  (0) 2017.06.21
slider control / settic  (0) 2017.06.12
mfc 파일 경로 얻기  (0) 2017.05.30
Posted by 구차니