送我能给的最大分,请教很小的问题,中高手进

flybusflybus 2001-11-30 08:23:29
1。怎么做一个console程序?
2。另外我看书上的例子建立一个win32 static连接程序,我照书上的建立好文件后,发现并没有任何代码生成,然后书上直接给出了程序清单,我怎么把这些code加进去?如何调试运行,成功后怎么去利用?

分数不够,可以再给,只要能说清楚
...全文
123 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
flybusflybus 2001-12-01
  • 打赏
  • 举报
回复
回复人: sans(sans) (2001-11-29 19:58:12) 得0分
你那个信箱有问题,所发的两个邮件均被弹了回来。
我重新给你写了一个透明Static类:CText,这个类在我的软件中用来显示如登陆信息、时间等内容,特别是时间是动态的,每秒钟改变一次,透明是没问题的。现将这个类完整地贴在这里,如果还有问题的话,我也没办法了,祝你好运!

// Text.h
#if !defined(AFX_TEXT_H__CD464317_FBC3_41E2_B2D2_7104DB89E511__INCLUDED_)
#define AFX_TEXT_H__CD464317_FBC3_41E2_B2D2_7104DB89E511__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// Text.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CText window

class CText : public CStatic
{
// Construction
public:
CText();

// Attributes
public:

// Operations
public:

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CText)
protected:
virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL

// Implementation
public:
virtual ~CText();

// Generated message map functions
protected:
//{{AFX_MSG(CText)
afx_msg void OnPaint();
//}}AFX_MSG

DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TEXT_H__CD464317_FBC3_41E2_B2D2_7104DB89E511__INCLUDED_)

///////////////////////////////////////////////////////////
//Text.cpp
// Text.cpp : implementation file
//

#include "stdafx.h"
#include "Text.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CText

CText::CText()
{
}

CText::~CText()
{
}


BEGIN_MESSAGE_MAP(CText, CStatic)
//{{AFX_MSG_MAP(CText)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CText message handlers

void CText::OnPaint()
{
CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

RECT r;
GetClientRect( &r );
CString strText;
GetWindowText( strText );

dc.SelectObject( GetFont() );
dc.SetBkMode( TRANSPARENT );
dc.SetTextColor( (COLORREF)RGB( 0, 0, 0 ) );

dc.DrawText( strText, &r, DT_SINGLELINE ¦ DT_RIGHT ¦ DT_VCENTER ¦ DT_NOCLIP );

// Do not call CStatic::OnPaint() for painting messages
}

LRESULT CText::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
switch( message )
{
case WM_SETTEXT:
{
LRESULT lRet = CStatic::DefWindowProc(message, wParam, lParam);
RECT r;
GetWindowRect( &r );

CWnd * pParentWnd = GetParent();
pParentWnd->ScreenToClient( &r );
pParentWnd->InvalidateRect( &r );

Invalidate( );
return lRet;
}
}
return CStatic::DefWindowProc(message, wParam, lParam);

flybusflybus 2001-11-30
  • 打赏
  • 举报
回复
你想实现哪一种全屏,有好多的方法呢?
可用MFC实现,可用DirectShow实现。下面是一篇文章


为MFC应用程序添加全屏幕显示功能

在CMainFrame类中添加下列成员变量和成员函数(使用ClassWizard),下面是这些变量和函数的功能说明:
成员变量:
BOOL m_bFullScreen; //全屏幕显示标志
CRect m_FullScreenWindowRect; //全屏幕显示窗口Rect
WINDOWPLACEMENT m_wpPrev; //用于保存正常视图时的窗口位置信息
CToolBar * m_wndFullScreenBar; //全屏幕显示时的浮动工具条
成员函数:
void OnMenuFullscreen(); //全屏幕显示的处理函数
void OnGetMinMaxInfo(); //捕获WM_GETMINMAXINFO消息以便允许你增加窗口大小
void OnUpdateViewFullScreen(); //更新“全屏幕显示”菜单的状态
源码
void CMainFrame::OnMenuFullscreen()
{//全屏幕显示的处理函数
RECT rectDesktop;
WINDOWPLACEMENT wpNew;
if (m_bFullScreen)
{//全屏幕显示模式
//隐藏工具条和状态条
m_wndStatusBar.ShowWindow(SW_HIDE);
m_wndToolBar.ShowWindow(SW_HIDE);
//保存正常视图时的窗口位置信息以便恢复原来状态
GetWindowPlacement (&m_wpPrev);
m_wpPrev.length = sizeof m_wpPrev;
//调整RECT为新的窗口尺寸
::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );
::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE, GetExStyle());
//保存RECT以便OnGetMinMaxInfo()使用
m_FullScreenWindowRect = rectDesktop;
wpNew = m_wpPrev;
wpNew.showCmd = SW_SHOWNORMAL;
wpNew.rcNormalPosition = rectDesktop;
//生成新的工具条
m_wndFullScreenBar=new CToolBar;
if(!m_wndFullScreenBar->Create(this, CBRS_SIZE_DYNAMIC¦CBRS_FLOATING)
¦¦ !m_wndFullScreenBar->LoadToolBar(IDR_FULLSCREEN))
{
TRACE0("Failed to create toolbar\n");
return; // fail to create
}
//不允许工具条停泊
m_wndFullScreenBar->EnableDocking(FALSE);
m_wndFullScreenBar->SetWindowPos(0,100,100,0,0,SWP_NOSIZE
¦SWP_NOZORDER¦SWP_NOACTIVATE¦SWP_SHOWWINDOW);
m_wndFullScreenBar->SetWindowText(_T("全屏幕显示"));
FloatControlBar(m_wndFullScreenBar, CPoint(100,100));
m_bFullScreen=TRUE;
}
else
{//正常显示模式
//删除全屏幕工具条
m_wndFullScreenBar->DestroyWindow();
delete m_wndFullScreenBar;
m_bFullScreen=FALSE;
//恢复工具条和状态条
m_wndStatusBar.ShowWindow(SW_SHOWNORMAL);
m_wndToolBar.ShowWindow(SW_SHOWNORMAL);
wpNew = m_wpPrev;
}
//设置窗口显示状态
SetWindowPlacement ( &wpNew );
}
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
if (m_bFullScreen)
{
lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();
lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;
lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();
lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;
}
}
void CMainFrame::OnUpdateMenuFullscreen(CCmdUI* pCmdUI)
{//更新菜单的状态
pCmdUI->Enable();
pCmdUI->SetCheck(m_bFullScreen);
}

回复人: likevclinux(流浪的小狗) (2001-11-26 14:01:30) 得0分
到www.comprg.com上down
回复人: 32167(32167) (2001-11-27 1:30:55)
flybusflybus 2001-11-30
  • 打赏
  • 举报
回复
Programming Windows, Fifth edition (4.38m)

Programming Microsoft Visual C++ fifth edition

Programming Applications for Microsoft Windows (IV)
http://www.fmdstudio.net/book/
这里的书
最适合.
sans 2001-11-30
  • 打赏
  • 举报
回复
把project->Settings->Link中的所有Object/library modules去掉。
DavidFu(傅道炜)所说的很正确,你必须到DOS-PROMPT中去运行它,或者为其建立一个PIF文件,不然就会一闪而过。
下面是一个完整的代码(纯C的),这两天刚写的,把二进制数转换为文本。
#include <stdio.h>

int main( int argc, char * argv[] )
{
FILE * fIn;
FILE * fOut;
char cp[3];

if( argc != 3 )
{
_EXIT_:
printf( "Usage : bin2txt BIN_FILE TXT_FILE\n" );
return -1 ;
}

fIn = fopen( argv[1], "rb" );
if( fIn == NULL ) goto _EXIT_;

fOut = fopen( argv[2], "wt" );
if( fOut == NULL )
{
fclose( fIn );
goto _EXIT_;
}

while( fread( cp, 1, 2, fIn ) == 2 )
{
fprintf( fOut, "$%02X%02X\n", (unsigned char )cp[1], (unsigned char )cp[0] );
}

fclose( fIn );
fclose( fOut );
return 0;
}
DavidFu 2001-11-30
  • 打赏
  • 举报
回复
那样好象不行,编出来的在dos下不能用,在win下执行后会马上关闭,你试试看就知道了。
flybusflybus 2001-11-30
  • 打赏
  • 举报
回复
san(sans)分数给了,能再多说点吗?
flybusflybus 2001-11-30
  • 打赏
  • 举报
回复
好的,我现在在网吧不可以try(我本来想也是那么做,不过不好try,so 问问)
77分先给你,你可以说说怎么利用这些连接好的文件吗?
sans 2001-11-30
  • 打赏
  • 举报
回复
菜单:文件->新建->C++文件
然后在C++文件中加上:
#include <stdio.h>
int main()
{
return 0;
}
然后选择成Release再编译连接,一切OK!
Kevin_C_K 2001-11-30
  • 打赏
  • 举报
回复
???
flybusflybus 2001-11-30
  • 打赏
  • 举报
回复
这个我也知道啊,不过建好的是空架子,怎么去加东西?再文件-》打开 ???
cafecai 2001-11-30
  • 打赏
  • 举报
回复
同意ghz(浪子)
wglacier 2001-11-30
  • 打赏
  • 举报
回复
1、To build a console application:
菜单:文件->新建->Win32 console application
flybusflybus 2001-11-30
  • 打赏
  • 举报
回复
都没人点击,郁闷~~~~~~

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧