뭐 전자 제품이 언젠가는 고장날 수가 있지만, 그래도 이것은 나의 과실이 너무 멍청했기 때문에 벌어진 일이기에 이제 와서 탓 해 봐야... 별 소용이 없다. 그래서 아쉬움을 뒤로하고, 고 동안 찍은 사진 중 마음에 드는 것을 몇 장 올립니다.
* Blogger에는 늦게 첨부한 사진이 앞에 나열되네요. 흠.




Old Castle, ??, Sweden
void NFCrystalEditControl::AppendLine(LPCTSTR pszChars)
{
CString msg;
msg = pszChars;
msg += "\r\n";
CCrystalTextBuffer *buffer = LocateTextBuffer();
int n = buffer->GetLineCount();
int x, y;
//tb->InsertText(this, ptCursorPos.y, ptCursorPos.x, pszChars, y, x, CE_ACTION_PASTE); // [JRT]
BOOL retcode = buffer->InsertText(this, n-1, 0, msg, y, x, CE_ACTION_PASTE); // [JRT]
if(retcode == TRUE)
{
CPoint ptCursorPos;// = GetCursorPos();
ptCursorPos.x = x;
ptCursorPos.y = y;
//ScrollToLine(y); // 현재 포인터가 보이는 곳으로 화면을 갱신한다.
//EnsureVisible(ptCursorPos); // 현재 포인터가 보이는 곳으로 화면을 갱신한다.
}
}
#if !defined(AFX_TABPAGESSL_H__619331B3_7DE7_4DB1_A039_2103E87E8E71__INCLUDED_)
#define AFX_TABPAGESSL_H__619331B3_7DE7_4DB1_A039_2103E87E8E71__INCLUDED_
/////////////////////////////////////////////////////////////////////////////
// CTabPageSSL declaration
class CTabPageSSL : public CDialog
{
public:
// Construction
CTabPageSSL (); // Default Constructor
CTabPageSSL (UINT nIDTemplate, CWnd* pParent = NULL); // Standard Constructor
// Destruction
~CTabPageSSL ();
// Enable/disable command routing to the parent.
void EnableRouteCommand(bool bRoute = true) { m_bRouteCommand = bRoute; };
bool IsRouteCommand() { return m_bRouteCommand; };
// Enable CmdMsg routing to the parent.
void EnableRouteCmdMsg(bool bRoute = true) { m_bRouteCmdMsg = bRoute; };
bool IsRouteCmdMsg() { return m_bRouteCmdMsg; };
// Enable/Disable Notify routing to the parent.
void EnableRouteNotify(bool bRoute = true) { m_bRouteNotify = bRoute; };
bool IsRouteNotify() { return m_bRouteNotify; };
protected:
// Message Handlers
virtual BOOL OnCommand (WPARAM wParam, LPARAM lParam);
virtual BOOL OnNotify (WPARAM wParam, LPARAM lParam, LRESULT* pResult);
virtual void OnOK (void);
virtual void OnCancel (void);
virtual BOOL OnCmdMsg (UINT nID, int nCode, void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo);
// Routing flags
bool m_bRouteCommand;
bool m_bRouteCmdMsg;
bool m_bRouteNotify;
};
#endif // !defined(AFX_TABPAGE_H__619331B3_7DE7_4DB1_A039_2103E87E8E71__INCLUDED_)
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
m_pSplitterWnd1 = new ST_SplitterWnd();
// split into five panes :
// +-----+--------+
// | | |
// + +--------+
// | | |
// +--+--+--------+
// | |
// +--------------+
//
// workingh
m_pSplitterWnd1->Create(this,NULL, NULL,pContext,false);
m_pSplitterWnd2 = m_pSplitterWnd1->AddSubDivision(TOP_SIDE, NULL, NULL,pContext,true);
m_pSplitterWnd2->AddView(LEFT_SIDE, RUNTIME_CLASS(NFMainView),pContext);
m_pSplitterWnd2->SetColumnInfo(0, 600, 300);
//m_pSplitterWnd2->SetRowInfo(0, 400, 400);
m_pSplitterWnd3 = m_pSplitterWnd2->AddSubDivision(RIGHT_SIDE, NULL, NULL,pContext,false);
m_pSplitterWnd3->AddView(TOP_SIDE, RUNTIME_CLASS(NFDialerView), pContext);
m_pSplitterWnd3->AddView(BOTTOM_SIDE, RUNTIME_CLASS(NFMiscView), pContext);
m_pSplitterWnd3->SetRowInfo(0, 220, 120);
m_pSplitterWnd3->SetRowInfo(1, 220, 120);
m_pSplitterWnd1->AddView(BOTTOM_SIDE, RUNTIME_CLASS(NFOutputView),pContext);
m_pSplitterWnd1->SetRowInfo(0, 400, 300);
//m_pSplitterWnd1->HideRow(1);
}