본문 바로가기

분류 전체보기275

WPF MVVM TextBox KeyDown Event WPF로 MVVM 패턴을 이용해서 TextBox의 KeyDown 이벤트를 확인해서 검색이나 다른 기능을 실행 시키기 위해서 처리하는 방법을 검색해서 만들어 보았다. 프로젝트에 Notifier.cs와 DelegateCommnad.cs를 추가한다. ViewModel.cs를 만들어 DataContext에 연결한다. MainWindow.xaml에는 TextBox 하나를 추가했다. http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc=" MainWindow.xaml.cs에서 DataContext 연결을 한다. public partial c.. 2021. 7. 20.
WPF TextBox에 float 바인딩 해서 소수점이 입력되지 않는 문제 WPF를 이용해서 TextBox에 Float이나 Double 값을 입력 하려고 했는데 소스점이 입력되지 않는 문제가 확인되었다. 이것 저것 검색한 결과 아래와 같은 정보를 찾아서 수정을 진행했다. https://stackoverflow.com/questions/14600842/bind-textbox-to-float-value-unable-to-input-dot-comma/14600905#14600905 Bind textbox to float value. Unable to input dot / comma When I try to input a DOT or a COMMA in a textbox, for example 1.02 or 83,33 the textbox prevents me to input such.. 2021. 7. 9.
WPF 체크박스 글자 색 변경 체크박스의 글자는 아래와 같이 내용과 같은 방식으로 추가를 한다. 색상은 Attribute 중의 Foreground를 이용한다. 내용 선택 글자색은 흰색으로 되고 글자 내용은 '내용 선택'으로 처리가 된다. 2021. 6. 7.
WPF 동적으로 Margin 변경 버튼이나 Grid 등의 Margin을 동적으로 변경하는 방법 btn.Margin = new System.Windows.Thickness{ Left = 10 }; 또는 아래와 같이 btn.Margin = new System.Windows.Thickness{ Left = 10, Top = 0, Right = 10, Bottom = 0 }; https://docs.microsoft.com/ko-kr/dotnet/desktop/wpf/advanced/how-to-set-margins-of-elements-and-controls?view=netframeworkdesktop-4.8 2021. 6. 7.
Combobox SelectionChanged 호출시 SelectedItem 확인 방법 private void cb_SelectionChanged(object sender, SelectionChangedEventArgs e) { string name = (sender as ComboBox).SelectedItem.ToString(); 2021. 5. 10.
ProcessID로 Handle 찾기 및 WM_COPYDATA 처리 문제 IPC를 할 때 다양한 방법이 있지만 WM_COPYDATA를 사용한 윈도우Q에 SendMessage를 보내는 방식이 있다. 간단하고 쉬워서 많이 사용을 한다. WM_COPYDATA를 이용해서 C#, MFC 등 다른 개발 언어로 통신을 하는 경우도 많다. 이번에 C# MFC 프로그램간에 SendMessage를 보내는데 잘 안되는 문제가 발생했다. C#에서 RunExecute로 MFC 프로그램을 실행하고 C# 앱의 ProcessID를 전달받아 MFC에서는 ProcessID로 핸들을 찾고 다시 SendMessage를 보내는 방식이다. MFC에서 아래와 같은 방식으로 핸들을 구했다. //Get Device Manage HWND HWND m_hwndDeviceMan = NULL; HWND m_tHwnd = NUL.. 2021. 4. 12.
std::map에서 char array를 key로 사용하기 아래와 같이 char array를 map의 키로 사용을 해보려고 테스트를 해봤다. std::map 2021. 4. 8.
memcmp 바이트 Array 비교를 할 때 사용 C, C++ 표준 함수 중에 memcmp 함수가 존재하다. #include // C++ 에서는 int memcmp(const void* ptr1, const void* ptr2, size_t num); ptr1 이 가리키는 처음 num 바이트의 데이터와 ptr2 가 가리키는 처음 num 바이트의 데이터를 비교하여 이들이 같다면 0 을 리턴하고 다르다면 0 이 아닌 값을 리턴. 이 함수를 사용하는 바이트 Array가 같은지 확인을 할 수 있다. for 문을 돌면서 바이트 하나씩 비교하는 함수를 만들 필요가 없다. 2021. 3. 31.
DNPTIME Convert unsigned int ComputeDayOfYear(unsigned short year, unsigned short mon, unsigned short day ) { return ((mon * 275 / 9) - (((mon + 9) / 12) * (1 + (((year % 4) + 2) / 3))) + day - 30); } void conv_dnp_to_gmt(unsigned char *buf, unsigned short *pSysTime) { unsigned int lsg, msg, lval; unsigned short year=0,mon=0,day=0,hour=0,min=0,sec=0,msec=0; lsg = buf[0] | (buf[1] >24) & 0xff; memcpy(&buf[2], &w.. 2020. 11. 3.
LIST