블로그 이미지
평강왕자

카테고리

분류 전체보기 (35)
Programming Lv1 (32)
MFC (16)
Java (1)
C# (6)
Web (0)
DataBase (0)
WPF + Blend (8)
Qt (0)
Programming LV2 (0)
취미 (3)
Total
Today
Yesterday

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

간혹 바탕화면에 해당창의 위치를 지정해야 하는 경우가 생긴다.

그럴경우 바탕화면 해상도를 가져와서 배치해야 하는데..

int x, y;

x = (int)GetSystemMetrics(SM_CXSCREEN);
y = (int)GetSystemMetrics(SM_CYSCREEN);

각각 x축, y축 값이 변수에 저장된다.

그후 SetWindowPos(); 함수를 사용해서 배치하면 된다.

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

MFC 새창열기 변경  (0) 2011.08.16
MFC Pane 닫기버튼 미사용시 레지스트리 초기화  (1) 2011.08.16
MFC Argument 가져오기  (0) 2011.08.16
MFC Title bar 제거  (0) 2011.08.16
MFC C# DLL Form 붙이기  (0) 2011.07.21
Posted by 평강왕자
, |

Argument 는 App쪽에 m_lpCmdLine 변수에 저장된다.

CString argument = AfxGetApp()->m_lpCmdLind;
MessageBox(argument);

확인이 가능하다.
Posted by 평강왕자
, |

Dialog 기반에서 OnInitDialog() 함수 부분

//타이틀바 제거
 long style = ::GetWindowLongW(this->m_hWnd,GWL_STYLE);
 style &= ~WS_CAPTION;
 ::SetWindowLongW(this->m_hWnd,GWL_STYLE,style);

부분을 추가해주면 타이틀이 표시되지 않는다.
Posted by 평강왕자
, |

MFC에서 C#에 있는 Form을 붙여 사용해야 하는 경우가 있다.

1. MFC 프로젝트 생성
2. C# DLL 프로젝트 생성
3. MFC 프로젝트 속성 -> 공용속성 -> 새 참조 추가 -> C# DLL 프로젝트 선택
4. MFC 프로젝트 속성 -> 구성속성 -> 공용 언어 런타임 지원 -> 공용 언어 런타임 지원(/clr) 선택
5. MFC stdafx.h -> #include <afxwinforms.h> 추가
6. MFC 리소스에 넣고자하는 다이얼로그에 static 생성후 ID 변경 ex)IDC_TEST_STATIC
7. 해당 다이얼로그 헤더파일에 아래와 같은 형태로 선언해준다.
CWinFormsControl : 윈폼 컨트롤 사용 클래스
Graph : C# 프로젝트 명
UserControl1 : C# Form 명
m_Graph : 변수명

CWinFormsControl<Graph::UserControl1> m_Graph;

8. 해당 다이얼로그 cpp파일에 DoDataExchange 함수에
IDC_TEST_STATIC : static ID
m_Graph : 변수명
DDX_ManagedControl(pDX,IDC_TEST_STATIC,m_Graph);

부분추가
Posted by 평강왕자
, |

MFC에서 C#에 있는 함수를 호출할때 C#함수에서 받는 인자값이

public void InsertData(int dataSize, int[,] data) 이런형태일경우

int 형태는 기본 MFC의 int로 전달이 가능하지만 배열은 int data[2][3] 이런식으로 전달이 불가능하다.

array
<int, 2>^ data = gcnew array<int, 2>(3,3); 이런식으로 배열을 선언하여

//C# Graph프로젝트의 UserControl1의 Form 에 있는 Control 포인터
Graph::UserControl1^ graph_control = (Graph::UserControl1^)m_Graph.GetControl();
//InsertData 함수를 호출
graph_control->InsertData(3,data);

이런식으로 전달이 가능하다.


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

MFC 바탕화면 해상도 가져오기  (0) 2011.08.16
MFC Argument 가져오기  (0) 2011.08.16
MFC Title bar 제거  (0) 2011.08.16
MFC C# DLL Form 붙이기  (0) 2011.07.21
MFC 와 C# Dll간 연동시 Window Form 컨트롤  (0) 2011.06.29
Posted by 평강왕자
, |
WinFormsControl을 통해서 컨트롤 변수를 만든다.

CWinFormsControl<GraphTest::UserControl1> m_Graph;

CWinFormsControl : Window Form 컨트롤
GraphTest : 프로젝트명
UserControl1 : Window Form 명
m_Graph : 변수명

Window Form 변수에 Control 을 포인터를 집어 넣는다.
그냥
GraphTest::UserControl1^ winFormControlVal = gcnew GraphTest::UserControl1;
할경우에는 C#의 this가 GraphTest.UserControl1 로 설정되어 컨트롤이 불가능하다.

GraphTest::UserControl1^ winFormControlVal = (GraphTest::UserControl1^)m_Graph.GetControl();
할경우에는 C#의 this가 ControlAxSourcingSite[GraphTest.UserControl1] 로 설정되어 컨트롤이 가능하다.

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

MFC 바탕화면 해상도 가져오기  (0) 2011.08.16
MFC Argument 가져오기  (0) 2011.08.16
MFC Title bar 제거  (0) 2011.08.16
MFC C# DLL Form 붙이기  (0) 2011.07.21
MFC C# DLL 함수 호출시 배열형태 인자값 전달  (0) 2011.07.21
Posted by 평강왕자
, |

최근에 달린 댓글

글 보관함