2008/05/28
Vista Icon 까지 지원하는 무료 아이콘 편집기 Greenfish Icon Editor
많은 아이콘 편집기가 있지만 지금 까지 사용한 툴 들 중에 가장 맘이 드는 툴은 Macroangelo 사의 Creation 툴이 가장 좋아 보였다.
이번에 찾은 툴은 비스타의 PNG 아이콘까지 지원하는 간단한 아이콘 편집 툴이다.
MDI 구조로 되어 있어 하나의 프로그램에서 여러개의 아이콘이나 커서를 편집할 수 있으며 다국어 인터페이스도 지원한다.
한가지 아쉬운 점은 대부분의 툴에 있는 화면을 갈무리해서 아이콘을 만드는 기능이 없다는 것이다.
그것을 제외하고는 장점을 많이 갖고 있는 강력한 툴이다.
Greenfish Icon Editor 웹페이지
Greenfish Icon Editor Pro 1.51 Download
Original Post : http://neodreamer-dev.tistory.com/103
이번에 찾은 툴은 비스타의 PNG 아이콘까지 지원하는 간단한 아이콘 편집 툴이다.
MDI 구조로 되어 있어 하나의 프로그램에서 여러개의 아이콘이나 커서를 편집할 수 있으며 다국어 인터페이스도 지원한다.
한가지 아쉬운 점은 대부분의 툴에 있는 화면을 갈무리해서 아이콘을 만드는 기능이 없다는 것이다.
그것을 제외하고는 장점을 많이 갖고 있는 강력한 툴이다.
Greenfish Icon Editor 웹페이지
Greenfish Icon Editor Pro 1.51 Download
Original Post : http://neodreamer-dev.tistory.com/103
Labels:
Animation Cursor
,
Greenfish
,
icon
,
Icon Editor
,
TistoryOldPost
,
Vista Icon
,
아이콘 편집
,
아이콘 편집기
2008/05/23
Programmer를 위한 코딩용 폰트 Andale09
얼마전에 프로그래머를 위한 굴림체 글꼴을 올린적이 있었다.
2008/01/22 - [Dev Story] - Programmer를 위한 굴림체 글꼴
개인적으로 코딩시 굴림체 글꼴을 선호하여 코딩시 문제가 될만한 글자를 수정하여 9포인트의 고정폭 폰트를 만든 것이다.
하지만 영문 폰트가 커서 코드가 오밀조밀 나와서 조금 답답한 면이 없지 않아 있었다.
그래도 영문폰트중에 코딩용으로 사용하기에는 AndaleMono 폰트가 최고인것 같아 AndaleMono를 굴림체와 어울리도록 하는 작업을 해보았다.
Andale Mono는 9point 해서 7x14의 크기이고 한글 굴림체 9point 는 12x12크기를 갖어서 두 폰트를 함께 사용할때 한글이 가로로 늘어지는 문제가 생겨 보기 좋지 않다.
그래서 Andale Mono 폰트를 9pt를 출력받은걸 굴림체와 어울리게 하려면 6x12사이즈로 변경을 해줘야 했다.
작업영역이 작아지다보니 기존 Andale Mono폰트에 비해 다소 손실이 생겼고 기존 폰트에 비해 자간 거리가 약간 줄어들긴 했지만 그런대로 쓸만한 폰트가 된 것 같다.
이 폰트를 Visual Studio에 적용을 하면 한글이 자동으로 굴림체로 나오지만 다른 툴들 CodeGear의 RAD Studio나 메모장에서 사용할 경우 한글이 바탕체로 나와 한글 폰트가 깨끗해 보이지 않는다. 굴림체보다 바탕체를 선호한다면 상황은 달라지겠지만...
어쨌거나 Andale09 폰트와 굴림체를 함께 사용하기 위해서는 Andale09 폰트에 굴림체를 연결해 주는 레지스트리를 등록해야한다.
레지스트리 위치는 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] 이다. 이곳에 Andale09 라는 이름의 다중 문자열값을 생성하고 링크시킬 폰트를 써주면 된다.
gulim.ttc,gulim
MSGOTHIC.TTC,MS UI Gothic
SimSun.TTC,SimSun
mingliu.ttc,PMingLiU
레지스트리를 등록하고 재부팅하면 설정이 끝난다.
아래 이미지는 Andale09 폰트를 적용한 예이다. 위에서 부터 차례로 MS Visual Studio, CodeGear Turbo C++, 메모장에서의 화면 이다.
Andale09 비트맵 글꼴
Andale09와 굴림체를 연결하는 Registry 설정파일
Original Post : http://neodreamer-dev.tistory.com/102
2008/01/22 - [Dev Story] - Programmer를 위한 굴림체 글꼴
개인적으로 코딩시 굴림체 글꼴을 선호하여 코딩시 문제가 될만한 글자를 수정하여 9포인트의 고정폭 폰트를 만든 것이다.
하지만 영문 폰트가 커서 코드가 오밀조밀 나와서 조금 답답한 면이 없지 않아 있었다.
그래도 영문폰트중에 코딩용으로 사용하기에는 AndaleMono 폰트가 최고인것 같아 AndaleMono를 굴림체와 어울리도록 하는 작업을 해보았다.
Andale Mono는 9point 해서 7x14의 크기이고 한글 굴림체 9point 는 12x12크기를 갖어서 두 폰트를 함께 사용할때 한글이 가로로 늘어지는 문제가 생겨 보기 좋지 않다.
그래서 Andale Mono 폰트를 9pt를 출력받은걸 굴림체와 어울리게 하려면 6x12사이즈로 변경을 해줘야 했다.
작업영역이 작아지다보니 기존 Andale Mono폰트에 비해 다소 손실이 생겼고 기존 폰트에 비해 자간 거리가 약간 줄어들긴 했지만 그런대로 쓸만한 폰트가 된 것 같다.
이 폰트를 Visual Studio에 적용을 하면 한글이 자동으로 굴림체로 나오지만 다른 툴들 CodeGear의 RAD Studio나 메모장에서 사용할 경우 한글이 바탕체로 나와 한글 폰트가 깨끗해 보이지 않는다. 굴림체보다 바탕체를 선호한다면 상황은 달라지겠지만...
어쨌거나 Andale09 폰트와 굴림체를 함께 사용하기 위해서는 Andale09 폰트에 굴림체를 연결해 주는 레지스트리를 등록해야한다.
레지스트리 위치는 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] 이다. 이곳에 Andale09 라는 이름의 다중 문자열값을 생성하고 링크시킬 폰트를 써주면 된다.
gulim.ttc,gulim
MSGOTHIC.TTC,MS UI Gothic
SimSun.TTC,SimSun
mingliu.ttc,PMingLiU
레지스트리를 등록하고 재부팅하면 설정이 끝난다.
아래 이미지는 Andale09 폰트를 적용한 예이다. 위에서 부터 차례로 MS Visual Studio, CodeGear Turbo C++, 메모장에서의 화면 이다.
Andale09 비트맵 글꼴
Andale09와 굴림체를 연결하는 Registry 설정파일
Original Post : http://neodreamer-dev.tistory.com/102
Labels:
Andale Mono
,
C++ Builder
,
font
,
TistoryOldPost
,
Turbo C++
,
Visual C++
,
굴림체
,
폰트
,
폰트 연결
2008/05/22
sprintf 문자열 포맷에 Asterisk(*) 사용하기
C++ 함수 중에 sprintf 라는 함수가 있는데 이는 숫자나 문자를 일정 포맷에 맞게 만들어 주는 기능을 한다.
형식은 다음과 같다.
int sprintf(char *s, const char *format, ...);
여기에 사용되는 format중 데이터 타입을 설정하는 예약어는 다음과 같다.
%d, %i: 정수
%o, %x: 정수 8진수, 16진수
%c: 문자
%s: 문자열
%f: 부동 소수점(단일 정밀도) 숫자
%e: 배정밀도(double precision) 숫자
%g: 배정밀도 숫자
일반적으로 데이터 타입을 나타내는 문자 앞에 숫자를 입력하여 정밀도를 지정하는데 숫자 대신에 Asterisk(*)를 입력하게 되면 출력되는 데이터의 자리수를 지정할 수 있다.
%3d, %10s
%*d, %*s
글로만 설명하는 것 보다 소스를 보는게 이해가 빠를 것이다.
Original Post : http://neodreamer-dev.tistory.com/101
형식은 다음과 같다.
int sprintf(char *s, const char *format, ...);
여기에 사용되는 format중 데이터 타입을 설정하는 예약어는 다음과 같다.
%d, %i: 정수
%o, %x: 정수 8진수, 16진수
%c: 문자
%s: 문자열
%f: 부동 소수점(단일 정밀도) 숫자
%e: 배정밀도(double precision) 숫자
%g: 배정밀도 숫자
일반적으로 데이터 타입을 나타내는 문자 앞에 숫자를 입력하여 정밀도를 지정하는데 숫자 대신에 Asterisk(*)를 입력하게 되면 출력되는 데이터의 자리수를 지정할 수 있다.
%3d, %10s
%*d, %*s
글로만 설명하는 것 보다 소스를 보는게 이해가 빠를 것이다.
예제 소스 보기
#include <iostream>
using namespace std;
int main()
{
char szBuf[1024];
cout << "1. %*d with integer" << endl;
int i = 100;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*d", 0, i); cout << szBuf << endl;
sprintf(szBuf, "%*d", 4, i); cout << szBuf << endl;
sprintf(szBuf, "%*d", 7, i); cout << szBuf << endl;
sprintf(szBuf, "%*d", 10, i); cout << szBuf << endl;
cout << endl;
cout << "2. %*f with float" << endl;
float f = 123.00f;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*f", 0, f); cout << szBuf << endl;
sprintf(szBuf, "%*f", 5, f); cout << szBuf << endl;
sprintf(szBuf, "%*f", 15, f); cout << szBuf << endl;
sprintf(szBuf, "%*f", 20, f); cout << szBuf << endl;
cout << endl;
f = 123.123f;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*f", 0, f); cout << szBuf << endl;
sprintf(szBuf, "%*f", 5, f); cout << szBuf << endl;
sprintf(szBuf, "%*f", 15, f); cout << szBuf << endl;
sprintf(szBuf, "%*f", 20, f); cout << szBuf << endl;
cout << endl;
cout << "3. %*f with double" << endl;
double d = 123.10;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*f", 0, d); cout << szBuf << endl;
sprintf(szBuf, "%*f", 5, d); cout << szBuf << endl;
sprintf(szBuf, "%*f", 15, d); cout << szBuf << endl;
sprintf(szBuf, "%*f", 20, d); cout << szBuf << endl;
cout << endl;
d = 123.123;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*f", 0, d); cout << szBuf << endl;
sprintf(szBuf, "%*f", 5, d); cout << szBuf << endl;
sprintf(szBuf, "%*f", 15, d); cout << szBuf << endl;
sprintf(szBuf, "%*f", 20, d); cout << szBuf << endl;
cout << endl;
cout << "4. %*g with double" << endl;
d = 123.10;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*g", 0, d); cout << szBuf << endl;
sprintf(szBuf, "%*g", 5, d); cout << szBuf << endl;
sprintf(szBuf, "%*g", 15, d); cout << szBuf << endl;
sprintf(szBuf, "%*g", 20, d); cout << szBuf << endl;
cout << endl;
d = 123.123;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*g", 0, d); cout << szBuf << endl;
sprintf(szBuf, "%*g", 5, d); cout << szBuf << endl;
sprintf(szBuf, "%*g", 15, d); cout << szBuf << endl;
sprintf(szBuf, "%*g", 20, d); cout << szBuf << endl;
cout << endl;
cout << "5. %*e with double" << endl;
d = 123.10;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*e", 0, d); cout << szBuf << endl;
sprintf(szBuf, "%*e", 5, d); cout << szBuf << endl;
sprintf(szBuf, "%*e", 15, d); cout << szBuf << endl;
sprintf(szBuf, "%*e", 20, d); cout << szBuf << endl;
cout << endl;
d = 123.123;
memset(szBuf, '\0', 1024);
sprintf(szBuf, "%*e", 0, d); cout << szBuf << endl;
sprintf(szBuf, "%*e", 5, d); cout << szBuf << endl;
sprintf(szBuf, "%*e", 15, d); cout << szBuf << endl;
sprintf(szBuf, "%*e", 20, d); cout << szBuf << endl;
cout << endl;
cout << "6. %*s with chars" << endl;
char sz[6] = "hello";
sprintf(szBuf, "%*s", 0, sz); cout << szBuf << endl;
sprintf(szBuf, "%*s", 4, sz); cout << szBuf << endl;
sprintf(szBuf, "%*s", 7, sz); cout << szBuf << endl;
sprintf(szBuf, "%*s", 10, sz); cout << szBuf << endl;
cout << endl;
return 0;
}
예제 결과 보기
1. %*d with integer
100
100
100
100
2. %*f with float
123.000000
123.000000
123.000000
123.000000
123.123001
123.123001
123.123001
123.123001
3. %*f with double
123.100000
123.100000
123.100000
123.100000
123.123000
123.123000
123.123000
123.123000
4. %*g with double
123.1
123.1
123.1
123.1
123.123
123.123
123.123
123.123
5. %*e with double
1.231000e+02
1.231000e+02
1.231000e+02
1.231000e+02
1.231230e+02
1.231230e+02
1.231230e+02
1.231230e+02
6. %*s with chars
hello
hello
hello
hello
Original Post : http://neodreamer-dev.tistory.com/101
Labels:
asterisk
,
C++
,
format string
,
sprintf
,
TistoryOldPost
2008/05/19
시스템 메뉴에 사용자 메뉴 추가하기
타이틀바 왼쪽에 있는 아이콘을 클릭했을때 나타나는 시스템 메뉴에 사용자 메뉴 추가 하기.
Original Post : http://neodreamer-dev.tistory.com/100
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
:
// 메뉴 등록하기
CMenu* pMenu = GetSystemMenu(FALSE);
AppendMenu(pMenu->m_hMenu, MF_SEPARATOR, NULL, NULL);
AppendMenu(pMenu->m_hMenu, MF_STRING, 40001, _T("New Menu"));
:
}
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
switch( nID )
{
case 40001:
// 사용자 메뉴 처리하기
AfxMessageBox(_T("Selected New System Menu"));
break;
}
CFrameWnd::OnSysCommand(nID, lParam);
}
Original Post : http://neodreamer-dev.tistory.com/100
Labels:
C++
,
Menu
,
OnSysCommand
,
TistoryOldPost
,
메뉴추가
,
시스템메뉴
2008/05/05
DelphiSpeedUp 2.76 Released
DelphiSpeedUp 은 CodeGear 툴의 IDE 성능 개선 Plugin.
Features:
* Improves Delphi/BCB/BDS's load times
* Optimizes often used RTL functions by functions form the FastCode project
* All optimizations are done in memory and do not change any file on disk
* Adds a "Close all and kill" menu item to the "File" menu that terminates the IDE very fast
* The fast termination is used when you close the IDE while pressing the CTRL key.
* Shows waiting cursor while loading designtime package
Supported IDEs:
* C++Builder 5, 6
* Delphi 5, 6, 7
* Borland Developer Studio 2005, 2006
* CodeGear RAD Studio 2007 (December Update)
# Version 2.76 (2008-05-03)
* Fixed: Huge memory leak in DLL hooking code
Homepage
Download
Original Post : http://neodreamer-dev.tistory.com/99
Features:
* Improves Delphi/BCB/BDS's load times
* Optimizes often used RTL functions by functions form the FastCode project
* All optimizations are done in memory and do not change any file on disk
* Adds a "Close all and kill" menu item to the "File" menu that terminates the IDE very fast
* The fast termination is used when you close the IDE while pressing the CTRL key.
* Shows waiting cursor while loading designtime package
Supported IDEs:
* C++Builder 5, 6
* Delphi 5, 6, 7
* Borland Developer Studio 2005, 2006
* CodeGear RAD Studio 2007 (December Update)
# Version 2.76 (2008-05-03)
* Fixed: Huge memory leak in DLL hooking code
Homepage
Download
Original Post : http://neodreamer-dev.tistory.com/99
Labels:
C++ Builder
,
CodeGear
,
DelphiSpeedUp
,
plugin
,
TistoryOldPost
,
Turbo C++
,
VCL
Subscribe to:
Posts
(
Atom
)