본문 바로가기

분류 전체보기124

[C#] Winform 컨트롤 배열하기 / 사각형 배열 Panel TableLayoutPanel [TableLayoutPanel 이란]Winform 작업에 Panel 종류 중 다른 종류의 Panel로 절친이라고 할 수 있습니다. 그만큼 매우 중요한 Panel로 활용도가 매우 높다고 할 수 있습니다. 해당 패널은 일반 패널과 다르게 동일한 비율의 컨트롤 구성을 진행 할 수 있고 동서남북 방향이 아닌 대각선 방향으로 컨트롤을 배치할 수 있다는 장점이 있습니다. 정확히 말하면 Row와 Column의 개념으로 2차원 배열에 X Y를 통하여 컨트롤을 배치할 수 있습니다.위 사진과 같이 왼쪽은 일반 Panel이고 오른쪽이 TableLayoutPanel입니다. 차이점이 확연히 들어나듯 오른쪽은 배열로 컨트롤의 위치를 조정할 수 있고 왼쪽은 상하좌우 개념으로 컨트롤을 배치할 수 있습니다. 두 Panel 모두 화면.. 2024. 7. 4.
[C#] Winform Panel 활용하기 / Dock Fill Control 겹침 해제 [Panel의 역할]기본적으로 C#을 접하는 대부분의 개발자들이 UI (User Interface)를 구현하기 위해 접한다고 생각합니다. UI를 구성하는 방법론에는 여러 가지가 있습니다만 그중 가장 쉽게 접할 수 있는 두 가지가 Winform과 WPF입니다. (Devops, metro 등 여러 가지 툴이 있으나 이는 추가적으로 원하시면 찾아보시면 될 것 같습니다)Winform은 짜여진 도구들을 끌어와 쉽게 구현할 수 있는 장점이 있지만 디자이너가 개발자가 개입하기 어려운 환경이므로 커스터마이징이 어렵습니다. 반대로 WPF도 도구를 끌어와 구현할 수 있지만 디자이너를 개발자가 직접 작업을 해야 하므로 확장성이 좋지만 작업성이 안 좋다는 단점이 있습니다. 확장성이 좋다 하는 건 반대로 말하면 개발자가 작업해.. 2024. 7. 2.
[C++ MFC] DLLNotFoundException 오류 해결 방법 [문제상황]필자는 제어 프로그래머입니다. C++ 프로젝트를 갈아엎고 C#으로 리빌딩하는 중 발생한 문제에 대한 해결책 기록입니다. 개인적으로 기록하여 기억에 오래 남기기 위함으로 두서가 없을 수 있습니다.일단 문제가 발생된 시점은 서보드라이버 컨트롤을 위하여 해당되는 보드의 라이브러리를 끌어와 사용하는 과정에서 발생된 오류입니다. 문제점이 발생된 계기는 새로운 PC를 셋업 하며 발견되었다는 점 참고 부탁드립니다.기존에 셋업된 PC에서는 정상 동작하지만 새로운 PC에서는 동작하지 않아서 디버깅을 진행하였습니다. 결과적으로 문제는 컨트롤보드 제조사에서 제공하는 API를 불러오는 과정에서 참조 오류가 발생되었습니다.  [해결 순서]구글링을 진행하다보니 유용한 글을 발견했습니다. 먼저 삽질을 통해 해결 방법을 .. 2024. 6. 30.
[C++ MFC] OnCtlColor 메모리 누수 확인 방법 및 조치 [OnCtlColor 함수란]MFC 프로그램을 하다 보면 화면 구성을 조금 더 깔끔하고 간략하면서 직관적으로 구성하기 위해 노력을 많이 하게 됩니다. 그러다 보면 꼭 마주칠 수밖에 없는 메시지 함수가 바로 OnCtlColor함수입니다. OnCtlColor함수는 시스템 메시지를 이용해서 컨트롤의 속성을 변경해 주는 함수입니다. 해당 부분에서 컨트롤의 nID (Resource.h 참조)를 가져와서 해당 컨트롤의 속성값을 변경할 수 있는 겁니다. 여기서 변경되는 색상 관련 속성값은 리소스뷰에서 작업할 수 없어 별도로 코드를 구성해야 합니다. 그런데 OnCtlColor를 사용할 때 매우 중요하게 고려해야 하는 부분이 있습니다. 이 함수를 잘못 사용하게 되면 치명적인 메모리 누수가 발생되어 프로그램이 종료되어도 .. 2024. 6. 27.