Win32
-
[MFC] - ActiveX 컨트롤 만들기VC++/MFC 2021. 1. 5. 22:56
MFC ActiveX 컨트롤 만들기 해당 내용은 Visual Studio Professional 2015로 설명 드리겠습니다. 프로젝트 이름은 추 후에 C# ActiveX 컨트롤을 MFC ActiveX 컨트롤에 래핑하는 예제를 위해서 아래와 같이 CSharpActiveXCtrlWrapper라고 짓게 되었습니다. 다음 다음 마침 추가 기능에 대한 설명은 아래의 링크를 통해 확인 하시기 바랍니다. https://msdn.microsoft.com/ko-kr/library/dkzccw76.aspx 컨트롤 설정 탭에서 컨트롤 기준을 (None)으로 하였기 때문에 Internet Explorer 브라우저에서 보이는 컨트롤이 없으므로 CFormView 방식으로 컨트롤을 올려보도록 하겠습니다. 리소스뷰 창에서 그림6과..
-
[C#] - WinForm 특정 윈도우 Show, TopMost 처리.NET/CSharp 2019. 10. 7. 18:02
웹 브라우저에서 웹 소켓을 통하여 특정 프로그램을 실행하는 프로그램을 개발 중에 있다. 해당 프로그램은 프로그램을 실행 후에는 실행된 프로세스와 소켓 통신(TCP/IP)을 통하여 데이터를 주고받고 프로세스에서 데이터를 받으면 웹 소켓을 통하여 데이터를 웹 브라우저 쪽으로 내려주는 구조로 되어있다. 또 프로세스가 하나 이상 실행이 되지 않는 구조로 되어 있다. 그러다 보니 실행되어 있는 상태에서 다시 실행 요청을 하였을 때 해당 프로세스의 메인 윈도우가 축소되어 있거나 다른 윈도우에 가려져 있을 때 처리가 필요하였다. 다행히 User32.dll IsIconic 함수를 통하여 프로세스의 메인 핸들을 넘겨 해당 프로세스 메인 핸들의 창이 최소화 여부를 알 수 있었다. 프로세스의 메인 윈도우가 최소화 되어 있을..
-
[C#] - Working Directory.NET/CSharp 2019. 4. 16. 21:43
WorkingDirectory 다른 회사 프로그램에서 내가 개발중인 프로그램을 실행 하게하는 작업을 하고 있었다. 이상하게도 정상 적으로 작동이 되질 않았다. 기존에 개발을 해 두었던 내가 개발한 프로그램으로 실행 하였을 때에는 정상적으로 실행 되었던 상태로 이상하게 느껴졌다. C# 개발을 오래했던 친구에게 물었더니 WorkingDirectory를 설정 을 해보라고 하더라 public static void ProcessStart(string fileName) { Process process = new Process(); process.StartInfo.WorkingDirectory = new FileInfo(fileName).Directory.FullName; process.StartInfo.FileNa..
-
[C#] - WinForm PropertyGrid 에 표시되는 Enum 값 이름 변경하기.NET/CSharp 2018. 12. 25. 11:44
PropertyGrid 를 활용하여 프로퍼티 설정하는 다이얼로그 창을 개발하던 중 Enum 에 해당 하는 값을 UI에 그대로 표현 하기에는 적당하지 않아 변경하는 방법을 찾아 보았다. 기본적으로 PropertyGrid 에 속성을 표현하기 위해서는 SelectedObject Property를 사용한다. 자세한 활용법은 MSDN을 참고하시기 바란다. MSDN PropertyGrid https://msdn.microsoft.com/ko-kr/library/aa302326.aspx PropertyGridForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Draw..
-
[DebugView] - 사용하기.NET/Tools, Library 2018. 9. 14. 10:04
DebugView 사용하기 https://docs.microsoft.com/en-us/sysinternals/downloads/debugview DebugView - Windows Sysinternals This program intercepts calls made to DbgPrint by device drivers and OutputDebugString made by Win32 programs. docs.microsoft.com DebugView는 .NET Framework로 Application 개발시 유용한 툴입니다. 개발시에 System.Diagnostics Namespace 에 있는 Debug, Trace 클래스를 활용하여 디버깅 용도로 사용됩니다. C, C++ 에서는 Windows.h 에서 ..
-
[C#] - WinForm Form Esc 키 눌렀을때 종료하기.NET/CSharp 2018. 9. 13. 14:22
Form에서 해당 키를 받기 위해서는 그림1과 같이 속성 창에서 KeyPreview 속성을 True로 설정해야 한다. KeyPreview 속성을 True로 설정후에는 그림2와 같이 KeyDown 이벤트롤 등록한다. Esc 키가 눌렀을때 Form.Close() 함수를 호출한다. private void TestForm_KeyDown(object sender, KeyEventArgs e) { if ((Keys)e.KeyValue == Keys.Escape) { this.Close(); } }
-
[C#] - WinForm 사용자 정의 컨트롤 사용하기.NET/CSharp 2018. 8. 26. 10:08
사용자 정의 컨트롤은 보통 사용자 만의 컨트롤을 만들거나 ActiveX 컨트롤 을 만들 때 주로 사용됩니다. 개발하면서 겪었던 특징점들을 정리해보고자 한다. 1. Load 이벤트 보통 Load 이벤트는 Form에 추가하여 주로 사용합니다. Form에 추가하여 사용할 경우에는 UserControl 에서 Load 이벤트를 정의하여 사용할 경우는 많지 않다. Load 이벤트가 필요하신분은 아래의 코드를 참고 하시기 바랍니다. 해당 Form 에서 Load 이벤트를 받으면 되기 때문이다. 해당 Load 이벤트는 UserControl 을 ActiveX 컨트롤로 만들어 Internet Explorer 브라우저에 올릴경우에 사용된다. 개발하면서 겪었던 에러 //////////////////////////////////..
-
[C#] - WinForm 컨트롤 사용하기.NET/CSharp 2018. 8. 26. 09:00
TabControl - 탭 컨트롤 탭 버튼에 이미지 추가하기 ImageList imgList = new ImageList(); imgList.Images.Add("1", Resources.Image1); imgList.Images.Add("2", Resources.Image2); int tabCount = _tabControl.TabCount; for (int index = 0; index < tabCount; index++) { _tabControl.TabPages[index].ImageKey = (index + 1).ToString(); } _tabControl.ImageList = imgList; - Tabless TabControl public class TablessControl : TabCon..