//使最小化按无效
void CMainFrame::OnDisableMinbox()
{
//获得窗口风格
LONG style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
style &= ~(WS_MINIMIZEBOX);
::SetWindowLong(m_hWnd,GWL_STYLE,style);
//重化窗口边框
CRect rc;
GetWindowRect(&rc);
::SetWindowPos(m_hWnd,HWND_NOTOPMOST,rc.left,rc.top,rc.Width(),rc.Height(),SWP_DRAWFRAME);
}
//使最大化按钮无效
void CMainFrame::OnDisableMaxbox()
{
//获得窗口风格
LONG style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
style &= ~(WS_MAXIMIZEBOX);
::SetWindowLong(m_hWnd,GWL_STYLE,style);
//重化窗口边框
CRect rc;
GetWindowRect(&rc);
::SetWindowPos(m_hWnd,HWND_NOTOPMOST,rc.left,rc.top,rc.Width(),rc.Height(),SWP_DRAWFRAME);
}
//使关闭按钮无效
void CMainFrame::OnDisableClose()
{
//获得系统菜单
CMenu *pMenu = GetSystemMenu(FALSE);
//获得关闭按钮的ID
int x = pMenu->GetMenuItemCount();
UINT pID=pMenu->GetMenuItemID(x-1);
//使关闭按钮无效
pMenu->EnableMenuItem(pID, MF_DISABLED);
}
//使最小化按钮有效
void CMainFrame::OnAbleMinbox()
{
//获得窗口风格
LONG style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
style |= WS_MINIMIZEBOX;
::SetWindowLong(m_hWnd,GWL_STYLE,style);
//重化窗口边框
CRect rc;
GetWindowRect(&rc);
::SetWindowPos(m_hWnd,HWND_NOTOPMOST,rc.left,rc.top,rc.Width(),rc.Height(),SWP_DRAWFRAME);
}
//使最大化按钮有效
void CMainFrame::OnAbleMaxbox()
{
//获得窗口风格
LONG style = ::GetWindowLong(m_hWnd,GWL_STYLE);
//设置新的风格
style |= WS_MAXIMIZEBOX;
::SetWindowLong(m_hWnd,GWL_STYLE,style);
//重化窗口边框
CRect rc;
GetWindowRect(&rc);
::SetWindowPos(m_hWnd,HWND_NOTOPMOST,rc.left,rc.top,rc.Width(),rc.Height(),SWP_DRAWFRAME);
}
//使关闭按钮有效
void CMainFrame::OnAbleClose()
{
//获得系统菜单
CMenu *pMenu=GetSystemMenu(FALSE);
//获得关闭按钮的ID
int x=pMenu->GetMenuItemCount();
UINT pID=pMenu->GetMenuItemID(x-1);
//使关闭按钮有效
pMenu->EnableMenuItem(pID, MF_ENABLED);
}
//使对话框的关闭按钮无效:
在对话框的OnInitDialog中调用如下代码
CMenu *mnu=this->GetSystemMenu(FALSE);
mnu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND|MF_GRAYED);
// OR
mnu->EnableMenuItem(SC_CLOSE,MF_BYCOMMAND|MF_GRAYED);
WinBox_Ctrl
投稿者 weijingli 時刻: 10/25/2007 0 コメント
ラベル: C++
ln命令使用
#!/bin/sh
BAS=.../obj
BIN=$BAS/run/bin/current
LIB=$BAS/run/lib/current
rm -f $BIN/*
rm -f $LIB/*
rm -f $BAS/run.tar
cd $BAS
cp */*.so $LIB
cp .../ProcA/Proc1 $BIN
cp .../ProcB/Proc2 $BIN
cp .../ProcC/Proc3 $BIN
cp .../ProcD/Proc4 $BIN
tar -cvf run.tar run
ls -l $LIB $BIN
date
ls -l *.tar
pwd
tar -xvf run.tar
// binの変更
cd bin
ll --->元の指向のBackup : current -> 元フォルダ/
rm current --->シンボリックリンクの削除
ln -s .../run/bin/current current --->新しい指向の作成
// libの変更
cd ..
cd lib
ll --->元の指向のBackup : current -> 元フォルダ/
rm current --->シンボリックリンクの削除
ln -s .../run/lib/current current --->新しい指向の作成
投稿者 weijingli 時刻: 10/18/2007 0 コメント
ラベル: Linux
引越し手続き
引越先の探し(UR、JKK、不動産など)
引越先との契約
現住所への通知
粗大ゴミの処分(市役所に申請が必要)
市役所の手続き(健康保険、住民税など)
引越専門(引越センター)への連絡
引越センターの見積
引越センターとの契約
歯医者への通知(有れば)
図書館への通知(有れば)
NHKへの転居届け
自分会社への通知、届けなど
郵便局への転居届け
水道局への通知
電力会社への通知
ガス会社への通知
WEB契約の引越又は解約
郵便ボックスの鍵の外し
荷物の整理
各種類カードへの転居届け
各銀行への転居届け
携帯電話への転居届け
新住所への鍵取り電話(一週間前)
新住所の水道局への電話(一週間前)
新住所のガス局への電話(一週間前)
新住所の電力局への電話(必要有れば)
市役所(新住所属する)への登録
投稿者 weijingli 時刻: 10/15/2007 0 コメント
ラベル: Diary
WIN_C++_Vector
// -------------------------------------------------------
// windows c++ vector define start
#include <vector>
typedef struct{
int id;
char* name;
} MY_DATA;
typedef std::vector< MY_DATA > MY_VECTOR;
MY_VECTOR my_vector;
// windows c++ vector define end
// -------------------------------------------------------
// -------------------------------------------------------
// windows c++ add member to vector start
char strName[NAME_MAX_SIZE];
sprintf( strName, "%s", "your name message.");
MY_DATA item;
item.name = new char[NAME_MAX_SIZE];
::memset( item.name, NULL, NAME_MAX_SIZE );
item.id = 100;
lstrcpy( item.name, strName );
my_vector.push_back( item );
// windows c++ add member to vector end
// -------------------------------------------------------
// -------------------------------------------------------
// windows c++ delete member from vector start
MY_VECTOR::iterator pos = my_vector.begin();
for ( ; pos != my_vector.end() ; ++pos ) {
if ( 100 == (*pos).id ) {
free( (*pos).name );
(*pos).name = NULL ;
my_vector.erase( pos );
break;
}
}
// windows c++ delete member from vector end
// -------------------------------------------------------
// -------------------------------------------------------
// windows c++ search member from vector start
char* getName = new char[ NAME_MAX_SIZE ];
::memset( getName, NULL, NAME_MAX_SIZE );
MY_VECTOR::iterator pos = my_vector.begin();
for ( ; pos != my_vector.end() ; ++pos ) {
if ( 100 == (*pos).id ) {
lstrcpy( getName, (*pos).name );
break;
}
}
// add your code here.
// -------------------
// add your code here.
free( getName );
getName = NULL;
// windows c++ search member from vector end
// -------------------------------------------------------
cl /c /GX -IC:\j2sdk1.4.2_11\include -IC:\j2sdk1.4.2_11\include/win32 XXX.cpp
link /OUT:XXX.dll /NOLOGO /DLL XXX.obj kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib
odbccp32.lib LIBCMT.lib /NODEFAULTLIB:LIBC.LIB
投稿者 weijingli 時刻: 10/15/2007 0 コメント
ラベル: C++