728x90

Application 172

[C# WPF] X / Y 좌표로 Margin 위치 구하기

C# WinForm의 경우 X, Y 좌표값으로 컨트롤을 배치하는 반면 WPF의 경우 Margin으로 좌표 위치를 구해야 합니다 그럴 경우 해당 컨트롤의 크기만 있으면 해당 Margin 값을 쉽게 구할 수 있습니다 현재 창의 크기를 가져와서 계산 후 컨트롤의 Margin 값을 대입시키면 됩니다 int iRMargin = (int)this.Width - {X_POS} - {Control_Width}; int iBMartin = (int)this.Height - {Y_POS} - {Control_Height}; {Control}.Margin = new Thickness((double){X_POS}, (double){Y_POS}, (double)iRMargin, (double)iBMartin); 위의 형태로 함..

[C# WPF] 마우스 올렸을때 변화 주기 (IsMouseOver Trigger)

xaml 파일에서 마우스 올렸을 때 TextBlock의 글자 크기나 색상을 변경시키고 싶을 때 아래와 같이 작성하면 쉽게 구현이 가능합니다 위와 같이 작성을 하면 마우스를 올리기 전 기본일 때는 폰트 크기는 12 글자 색상은 #D3D3D3 값을 가지고 있다가 마우스가 올라오면 폰트 크기는 16으로 글자 색상은 흰색으로 변경됩니다 Padding의 경우 마우스 위치를 중앙에 맞춰주기 위해 임의의 값을 넣었습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

[C# WPF] 함수에서 다중 인자 값 넘겨 받기

함수를 사용하다 보면 다중 인자 값을 받아야 할 경우가 생깁니다 이럴 때는 아래와 같이 코드를 작성해 주시면 됩니다. public void ListLoad(params string[] strPath) { //사용법 1 foreach (string Values in strPath) { MessageBox.Show(Values); } //사용법 2 int iArgs = strPath.Length; for (int iCnt = 0; iCnt < iArgs; iCnt++) { MessageBox.Show(strPath[iCnt]); } } 사용법 1의 경우 Foreach 사용방법이고 사용법 2의 경우 인자값의 크기를 가져와서 For 문으로 처리하는 방식입니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 :)

[C# WPF] 파일의 아이콘을 추출해서 BitmapImage 변환하기

특정 파일의 아이콘을 추출하여 BitampImage로 변환을 하기 위해서는 아래와 같은 함수를 사용하면 됩니다 private BitmapImage LoadIcon(string filename) { Icon ico = System.Drawing.Icon.ExtractAssociatedIcon(filename); Bitmap bmp = ico.ToBitmap(); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.StreamSource = ms; bi.CacheOption = BitmapCacheO..

[C# WPF] StackPanel Control 구분 하기

ListView 컨트롤에서 StackPanel를 쓸 경우 여러 개의 StackPanel을 구분하기가 쉽지 않습니다 그럴 때는 함수의 자식 컨트롤에 따라 구분하시면 됩니다 우선 XAML 파일에서 아래와 같이 ListView의 DataTemplate를 작성하고 아래와 같이 cs 파일에서 특정 데이터를 Binding 합니다 MovieData []mydata = new MyData[m_iCount]; for (int iCnt = 0; iCnt < m_iCount; iCnt++) { mydata[iCnt] = new MyData { Title = "Test" + (iCnt + 1).ToString(), ImageData = LoadImage(@"...") }; } listView1.ItemsSource = myd..

[C# WPF] 배경화면 투명화

컨트롤 외 배경화면의 불투명 정도를 변경하고 싶다면 XAML에서 특정 코드를 추가해 주면 됩니다 기존 코드의 경우 이런식으로 흰색 배경을 바탕으로 위에 컨트롤이 배치가 됩니다 여기서 특정 코드를 삽입해 주면 위처럼 50프로 불투명도를 조절할 수 있습니다 더 추가해 이런식으로 배경을 없는 것처럼 투명화 되는 것도 확인할 수 있습니다 이처럼 불투명도를 조절하기 위해선 위와 같이 Window 코드 아래 해당 코드를 추가 하면 됩니다 단위는 1에서 0까지이며 반투명은 0.5와 같이 소수점으로 입력해 주면 됩니다

[MFC] CListControl 정렬 기능 구현

우선 CListControl 컨트롤의 속성에서 HDN_ITEMCLICK 이벤트를 추가해 줍니다 그런 다음 헤더 파일 상단에 구조체 하나를 선언해 줍니다 struct PARAMSORT { PARAMSORT(HWND hWnd, int columnIndex, BOOL ascending) :m_hWnd(hWnd) ,m_ColumnIndex(columnIndex) ,m_Ascending(ascending) {} HWND m_hWnd; int m_ColumnIndex; BOOL m_Ascending; }; 추가로 헤더 파일에 Ascending 할것인지 아닌지를 설정하기 위해 클릭했던 Colume을 기억할 변수를 선언합니다 int m_iSortIndex; 이후 cpp 파일에 CALLBACK 함수를 하나 추가 합니다 ..

Application/MFC 2022.12.23

[C++] enum 중복 값 쓰기

아래와 같이 코드를 작성하면 다른 enum의 변수값인데도 같은 변수명이라는 이유로 컴파일에서 에러를 발생시킨다 #include enum Index { _111, _222, _333, _444, MAX }; enum Index1 { _111, _222, _333, _444, MAX }; int main(int argc, char **argv) { return 0; } 이런 에러를 우회하는 방법으로는 namespace를 쓰는 방법이 있다 #include namespace Type_A { enum Index { _111, _222, _333, _444, MAX }; } namespace Type_B { enum Index { _111, _222, _333, _444, MAX }; } int main(int a..

Application/C++ 2022.12.22

[MFC] 단일 문서 상단 메뉴 체크 상태 변경

1. 메뉴 등록 2. OnCommand 가상 함수 등록 3. 각 메뉴 별 이벤트 처리기 추가 4. 이벤트 처리기 마법사에서 CMainFrame 항목으로 UPDATE_COMMAND_UI 이벤트 추가 5. Mainfrm.h 파일에 BOOL 전역 변수 추가 6. BOOL 전역 변수 초기화 7. OnCommand 함수에서 이벤트 처리 추가 8. 메뉴에서 추가한 UPDATE_COMMAN_UI 함수에 아래와 같이 코드 추가 이후 정상적으로 체크 박스가 활성화되는 것을 확인할 수 있다

Application/MFC 2022.12.16
728x90
반응형