2010년 7월 26일 월요일

Style Sheet /// .CSS


:: SyleSheet 파일은 HTML 기반 Text의 Style 을 미리 정해놓은 파일로 자세한건 모르겠고

본인은 Scaleform을 이용한 Flash GUI 를 구현 하면서 사용했다..

 

처음엔 키워드가 다른줄도 모르고... 삽질을.. 젠장..

 

 CSS Property  AS Property
 color  color
 display  display
 font-family  fontFamily
 font-size  fontSize
 font-style  fontStyle
 font-weight  fontWeight
 kerning  kerning
 letter-spacing  letterSpacing
margin-left  marginLeft

 

 margin-right  marginRight
 text-align  textAlign
 text-decoration  textDecoration
 text-indent  textIndent
   
   
   
   
   
   

 

 

 

 

헝가리안 표기법

:: 개발팀마다 약간의 표기법이 다를 수 있음

 

Prefix

Type

Example

dw

double word

dwTotal

w

WORD

wNumber

l

long

lTotal

i

Integer

iNumber

f

float

fAvarage

b

bool

bCheck

n

short

nCount

by

BYTE

byOffset

ch

CHAR

chKey

sz

CHAR[] Null Terminatied

szFlag

sz

WCHAR[] Null Terminatied

szPin

C

Class

CButton

s

static

sHelper

p

Pointer

pButton

str

CString

strAddress

r

RECT

rDraw

a

Array

aBags

g_

Global Val

g_bShow

m_

Member Val

m_iMans

si

size_t

siCount

 

 

 

vec

vector

vecMan

map

map

mapWoman

lst

list

lstHome

hsh

hash

hshHome

h

handle

hWindow

공용체 Union

:: 소스를 보다보면 Union 이라는 키워드를 종종 보게 된다.

Union(공용체)은 구조체와 비슷지만 메모리를 공유한다는게 다르다.

1)

struct sStruct

{

  int m_iTemp;

  short m_nTemp[2];

};

 

2)

union uUnion

{

  int m_iTemp;

  short m_nTemp[2];

};

 

:: 1) 의 구조체의 맴버는 각각의 메모리를 사용하며 m_iTemp의 값을 변경하더라고 m_nTemp 의 값은

변하지 않는다. /// sizeof(sStruct) == 8;

 

하지만 2) 은 공용체로 맴버간의 메모리를 서로 공유하여 사용하게된다.. 고로

m_iTemp 의 4byte는 m_nTemp[0] 의 2byte 와 m_nTemp[1]의 2byte 와 공유하므로

m_iTemp나 m_nTemp의 값을 변경하게되면 다른 맴버의 값도 변하게 된다.

/// sizeof(uUnion) == 4;

 

뭐.. 다음과 같은 상황 에서 쓰기는 하지만 본인은 머리가 나쁜관계로 해깔려서 쓰지는 않음.. ㅋ

 

struct sInfo

{

   ...

   union

   {

        int x, y, z, w;

        int xyzw[4];

   }

   ...

}

 

c++ Property

/// Getter & Setter define
#define GETSET(DATATYPE, GETTER, SETTER) __declspec(property(get=GETTER, put=SETTER)) DATATYPE
#define GET(DATATYPE, GETTER) __declspec(property(get=GETTER)) DATATYPE
#define SET(DATATYPE, SETTER) __declspec(property(put=SETTER)) DATATYPE

/// Variable Define
#define VARIABLE(DATATYPE, NAME); DATATYPE NAME;

/// Property Define
#define PROPERTY(DATATYPE, NAME, GET, SET) \
protected:                 \
   VARIABLE(DATATYPE, m_##NAME);    \
public:                  \
   GETSET(DATATYPE, GET, SET) NAME;

class CTEMP
{
public:

 int GetTest()
 {
  return this->m_TEST;
 }

 ///void SetTest(int nTest)
 int& SetTest(int value)
 {
  this->m_TEST = value;
  return this->m_TEST;
 }

 PROPERTY(int, TEST, GetTest, SetTest);
};

2010년 7월 19일 월요일

c# Font Exists

c# Font Exists

 

Code 1)

/// 입력된 폰트 이름으로 실재 폰트를 생성
/// 가상 시스템 폰트 이름을 입력 했을때 맵핑된 폰트 또는 기본 폰트가 생성된다.

 

public partial class Form1 : Form
{
    public Form1()
    {
        SetFontFinal();
        InitializeComponent();
    }

    /// <summary>
    /// This method attempts to set the font in the form to Cambria, which
    /// will only work in some scenarios. If Cambria is not available, it will
    /// fall back to Times New Roman, so the font is good on almost all systems.
    /// </summary>
    private void SetFontFinal()
    {
        string fontName = "Cambria";
        Font testFont = new Font(fontName, 16.0f, FontStyle.Regular, GraphicsUnit.Pixel);

        if (testFont.Name == fontName) // if(testFont != null)
        {
            // The font exists, so use it.
            this.Font = testFont;
        }
        else
        {
            // The font we tested doesn't exist, so fallback to Times.
            this.Font = new Font("Times New Roman", 16.0f, FontStyle.Regular, GraphicsUnit.Pixel);
        }
    }
}


Code 2)

/// 설치 되어 있는 폰트 이름

InstalledFontCollection installedFontCollection = new InstalledFontCollection();
 
// Get the array of FontFamily objects.
FontFamily[] fontFamilies = installedFontCollection.Families;

 

--------------------------------------------------------------------------------------

 

/// font mapping reg
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\FontSubstitutes